{"info":{"_postman_id":"99c07ed7-5bf3-9f5a-b17f-e37f50958266","name":"Exivity API v1","description":"<html><head></head><body><img src=\"https://content.pstmn.io/eeb7303a-367d-4f85-a90c-642ea4d12292/RXhpdml0eUFQSXYxTG9nby5wbmc=\">\n\n<p>This is the Exivity API specification, and should be used as a reference guide for creating requests and parsing responses. For a more general introduction to Exivity, please refer to our <a href=\"https://docs.exivity.com/\">documentation</a>.</p>\n<p>Download latest <a href=\"https://raw.githubusercontent.com/exivity/postman-collections/master/proximity/v1.json\">Postman collection</a> from our <a href=\"https://github.com/exivity/postman-collections\">GitHub repository</a>.</p>\n<h1 id=\"overview\">Overview</h1>\n<ol>\n<li>This API uses principles and constraints of <a href=\"https://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints\">REST APIs</a>.</li>\n<li>You need a valid API token for requests.</li>\n<li>The API is rate limited.</li>\n<li>Most resource endpoints listen to and responds with data structures as defined by the <a href=\"https://jsonapi.org/\">JSON:API standard</a>. You'll recognise these endpoints when the documentation lists the following headers:</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/vnd.api+json\nAccept: application/vnd.api+json\n\n</code></pre><h1 id=\"authentication\">Authentication</h1>\n<p>The default method of authentication against the API is done through a stateless <a href=\"https://jwt.io/\">JWT token</a>.</p>\n<p>It is also possible to authenticate the API via LDAP or SAML, if your administrator has set up access to either of these systems.</p>\n<h4 id=\"how-to-use-the-token\"><strong>How to use the token</strong></h4>\n<p>The default method of authentication against the API is done through a stateless <a href=\"https://jwt.io/\">JWT token</a>, sent along as an Authentication header. To obtain a token, a request to the API endpoint <code>/v1/auth/token</code> should be made with the user credentials.</p>\n<p>Once a token has been generated, please include it in the headers of other requests to allow authorization.</p>\n<p><em>Example:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer [token]\n\n</code></pre><p>The JWT token will expire after <em>4 hours</em> for security reasons. This value is configurable. Please see <a href=\"#dcc7d52d-c5f5-35bd-a28b-182dbba9eec3\">/configuration</a> or <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#authentication-token\">https://docs.exivity.com/architecture%20concepts/glossary/#authentication-token</a> for more information.</p>\n<h1 id=\"working-with-the-api\">Working with the API</h1>\n<h2 id=\"placeholders\">Placeholders</h2>\n<p>Different variables have double curly brackets around them (<code>{{</code>, <code>}}</code>). These used for placeholders in this documentation. When working with the API, these placeholders should be replaced with real values. Examples include:</p>\n<p><code>{{base_url}}</code> - replace this with your API's url</p>\n<p><code>{{workflow_id}}</code>, <code>{{report_id}}</code>, <code>{{account_id}}</code>, etc - these are placeholders for a specific ID for an object.</p>\n<h2 id=\"query-string-parameters\">Query String Parameters</h2>\n<p>Some requests using the JSON:API format accept additional query string parameters.</p>\n<h3 id=\"filtering\">Filtering</h3>\n<p>To filter results, use the <code>filter[attribute]</code> query string parameter.</p>\n<p>The following formats are supported for filtering results:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Token</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>^</code></td>\n<td>Field starts with</td>\n<td><code>filter[name]=^John</code></td>\n</tr>\n<tr>\n<td><code>$</code></td>\n<td>Field ends with</td>\n<td><code>filter[name]=$Smith</code></td>\n</tr>\n<tr>\n<td><code>~</code></td>\n<td>Field contains</td>\n<td><code>filter[favorite_cheese]=~cheddar</code></td>\n</tr>\n<tr>\n<td><code>&lt;</code></td>\n<td>Field is less than</td>\n<td><code>filter[lifetime_value]=&lt;50</code></td>\n</tr>\n<tr>\n<td><code>&gt;</code></td>\n<td>Field is greater than</td>\n<td><code>filter[lifetime_value]=&gt;50</code></td>\n</tr>\n<tr>\n<td><code>&gt;=</code></td>\n<td>Field is greater than or equals</td>\n<td><code>filter[lifetime_value]=&gt;=50</code></td>\n</tr>\n<tr>\n<td><code>&lt;=</code></td>\n<td>Field is less than or equals</td>\n<td><code>filter[lifetime_value]=&lt;=50</code></td>\n</tr>\n<tr>\n<td><code>=</code></td>\n<td>Field is equal to</td>\n<td><code>filter[username]==Specific Username</code></td>\n</tr>\n<tr>\n<td><code>!=</code></td>\n<td>Field is not equal to</td>\n<td><code>filter[username]=!=common username</code></td>\n</tr>\n<tr>\n<td><code>[...]</code></td>\n<td>Field is one or more of</td>\n<td><code>filter[id]=[1,5,10]</code></td>\n</tr>\n<tr>\n<td><code>![...]</code></td>\n<td>Field is not one of</td>\n<td><code>filter[id]=![1,5,10]</code></td>\n</tr>\n<tr>\n<td><code>{...,...}</code></td>\n<td>Between exclusive (e.g. 2 up to 99)</td>\n<td><code>filter[id]={1,100}</code></td>\n</tr>\n<tr>\n<td><code>={...,...}</code></td>\n<td>Between inclusive (e.g. 1 up to 100)</td>\n<td><code>filter[id]=={1,100}</code></td>\n</tr>\n<tr>\n<td><code>NULL</code></td>\n<td>Field is null</td>\n<td><code>filter[address]=NULL</code></td>\n</tr>\n<tr>\n<td><code>NOT_NULL</code></td>\n<td>Field is not null</td>\n<td><code>filter[email]=NOT_NULL</code></td>\n</tr>\n</tbody>\n</table>\n</div><p><em>Example - get accounts that start with W:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /accounts?filter[name]=^W\n\n</code></pre><h4 id=\"multiple-filters\">Multiple filters</h4>\n<p>The filter parameter can occur multiple times in a request to filter by multiple fields.</p>\n<p><em>Example - get accounts that start with W and level is set to one:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /accounts?filter[name]=^W&amp;filter[level]==1\n\n</code></pre><h4 id=\"related-entities-filters\">Related entities filters</h4>\n<p>A filter can also use related entities (which don't have to be included in the request with the <code>include</code> parameter).</p>\n<p><em>Example - get users with MANAGE_USERS permission, and an email address ending with \"example.com\":</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /user?filter[usergroup.permissions]=~MANAGE_USERS&amp;filter[email_address]=$example.com\n\n</code></pre><h3 id=\"pagination\">Pagination</h3>\n<p>When making requests to endpoints which can return more than one entity, results are paginated. The number of results per page and the requested page can be adjusted with the <code>page[limit]</code> and <code>page[offset]</code> query string parameters.</p>\n<p><em>Example:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /user?page[limit]=50&amp;page[offset]=2\n\n</code></pre><p>When the page limit is set to <code>-1</code>, all results are returned.</p>\n<p>The <code>links</code> element in the JSON response contains references to URLs which can be used to navigate the resultset.</p>\n<p>The <code>meta</code> element in the JSON response contains a reference to the total number of items in the resultset.</p>\n<h3 id=\"sorting\">Sorting</h3>\n<p>It is possible to sort results by using the <code>sort</code> query string parameter. A descending sort order can be requested by prefixing a hyphen (U+002D).</p>\n<p><em>Example:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /user?sort=-username\n\n</code></pre><h3 id=\"include-related-resources\">Include Related Resources</h3>\n<p>Inclusion of related resources in the response can be requested with the <code>include</code> query string parameter. Multiple entities can be specified by separating them with a comma (U+002C). Each endpoint definition specifies which includes can be requested.</p>\n<p><em>Examples:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /user?include=usergroup,accounts\nGET /user/[id]?include=usergroup,accounts\n\n</code></pre><h3 id=\"fetching-relationships\">Fetching relationships</h3>\n<p>It is also possible to fetch relationship data to a single resource using a separate endpoint. Relationships data on resources can be <a href=\"http://jsonapi.org/format/#fetching-relationships\">queried</a> and <a href=\"http://jsonapi.org/format/#crud-updating-relationships\">modified</a> by using the <code>/[resource]/[id]/relationships/[relation]</code> endpoint structure.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /user/[id]/usergroup\n\n</code></pre><h1 id=\"error-responses\">Error responses</h1>\n<p>Errors are returned as a JSON object, following the <a href=\"https://jsonapi.org/format/#errors\">JSON:API error standard</a>. We use HTTP error responses in the status field, to indicate whether the request was a success (<code>2xx</code>) or a failure(<code>4xx</code>, <code>5xx</code>).</p>\n<p><em>Example:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"errors\": [\n    {\n      \"status\": \"422\",\n      \"title\":  \"Attribute validation error\",\n      \"detail\": \"Password must contain at least 8 characters.\"\n    }\n  ]\n}\n\n</code></pre>\n<p>Possible response codes:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad request</code></td>\n<td>Something in the request is missing or invalid</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>JWT token is missing or invalid</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Missing required permission for this operation</td>\n</tr>\n<tr>\n<td><code>404 Not found</code></td>\n<td>Entity can't be found</td>\n</tr>\n<tr>\n<td><code>409 Conflict</code></td>\n<td>Entity type or id doesn't match endpoint</td>\n</tr>\n<tr>\n<td><code>422 Unprocessable Entity</code></td>\n<td>Parameters validation error</td>\n</tr>\n<tr>\n<td><code>503 Service Unavailable</code></td>\n<td>Rate lime exceeded</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"authentication-error-response\">Authentication error response</h2>\n<p>If an authorization token is missing, expired or malformed, an error response will be returned. These errors will always have a <code>401 Unauthorised</code> status.</p>\n<p><em>Example:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"errors\": [\n        {\n            \"status\": 401,\n            \"title\": \"AuthException\",\n            \"detail\": \"Invalid token provided, please login again.\"\n        }\n    ]\n}\n\n</code></pre>\n<h2 id=\"authorization-error-response\">Authorization error response</h2>\n<p>Some endpoints require a different set of permissions than others. If insufficient permissions are granted to the authenticated user, a <code>403 Forbidden</code> response is returned.</p>\n<h1 id=\"rate-limits\">Rate limits</h1>\n<p>All API requests are rate limited to avoid overloading the server.<br>The rate at which you can make requests to the API is limited by client IP address, and is limited at 10 requests per second. The API allows for short request bursts (i.e. you can exceed this limit for a short period of time). If you've exceeded your API rate limit, you'll get back a <code>503 Service Unavailable</code> response.</p>\n<p>Requests containing a user password in the payload are even further rate limited to mitigate brute-force attacks in user credentials.</p>\n<h1 id=\"terms-of-service\">Terms of service</h1>\n<p>You can find the terms of service <a href=\"https://www.exivity.com/terms\">on our website</a>.</p>\n<h1 id=\"api-reference\">API Reference</h1>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Overview","slug":"overview"},{"content":"Authentication","slug":"authentication"},{"content":"Working with the API","slug":"working-with-the-api"},{"content":"Error responses","slug":"error-responses"},{"content":"Rate limits","slug":"rate-limits"},{"content":"Terms of service","slug":"terms-of-service"},{"content":"API Reference","slug":"api-reference"}],"owner":"1756516","collectionId":"99c07ed7-5bf3-9f5a-b17f-e37f50958266","publishedId":"6Z3sBRp","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"333333","highlight":"5CCCEA"},"publishDate":"2021-06-02T07:27:08.000Z"},"item":[{"name":"General","item":[{"name":"Power-on self-test","event":[{"listen":"test","script":{"id":"f86ddfa6-cc3e-4948-bd9a-64386600c23e","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"50f910fa-778b-4bd8-ac06-b6fe023c097b","exec":["console.log(\"Base_url: \", pm.environment.get(\"base_url\"));",""],"type":"text/javascript"}}],"id":"ee525104-747b-8c3a-4a6f-5853b45997e6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"{{base_url}}","description":"<p>A simple test to check the system is set up correctly. If all is well, this request should return a simple HTML page with a link to the API documentation.</p>\n<p>It is also possible to ask for a JSON response, using the <code>Accept: application/json</code> header.</p>\n<p>This will return a 204 response if all is good, or a 500 error with a JSON error message if something is not correct.</p>\n<p>In debug mode, this will also contain a <code>meta</code> field, listing the area where the problem is.</p>\n","urlObject":{"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"043b93a1-7e35-f34f-f250-d2ce59ee9138","name":"Power-on self-test","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}"},"status":"OK","code":200,"_postman_previewlanguage":"html","header":[{"key":"Cache-Control","value":"no-cache, private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Encoding","value":"gzip","name":"Content-Encoding","description":""},{"key":"Content-Type","value":"text/html; charset=UTF-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 05 Mar 2018 19:06:06 GMT","name":"Date","description":""},{"key":"Server","value":"nginx/1.13.5","name":"Server","description":""},{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":""},{"key":"Vary","value":"Accept-Encoding","name":"Vary","description":""},{"key":"X-Powered-By","value":"PHP/7.1.4","name":"X-Powered-By","description":""}],"cookie":[],"responseTime":"227","body":"<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <link rel=\"icon\" type=\"image/png\" href=\"favicon.png\">\n    <title>Exivity</title>\n    <style>\n        body {\n            margin: 0;\n            padding: 2rem;\n            font-family: sans-serif;\n            font-size: 100%;\n            background-color: #ffffff;\n            color: #333;\n            text-align: center;\n        }\n\n        h1 {\n            font-size: 5rem;\n        }\n\n        pre {\n            display: inline-block;\n            text-align: center;\n        }\n\n        a {\n            color: black;\n        }\n\n        .setup {\n            position: absolute;\n            top: 0;\n            right: 0;\n            width: 100%;\n            height: 100%;\n        }\n    </style>\n</head>\n<body>\n\n<h1><img src=\"favicon.png\" style=\"height: 1em;\"/></h1>\n\n<pre>\nExivity API\n<a href=\"https://api.exivity.com\">api reference</a>\n</pre>\n\n<script>\n    var url = atob('aHR0cHM6Ly9mdGhtYi50cW4uY29tLzBNVTh1b3lNSTZac1MyWkhlYkt2YWNkQmszcz0vMTkyMHgxMDgwL2ZpbHRlcnM6ZmlsbChhdXRvLDEpL2Fib3V0L2Jpb3Mtc2V0dXAtdXRpbGl0eS01N2ZlNjNkYjNkZjc4Y2JjMjg2MDA5YzEuanBn');\n    var img = document.createElement(\"img\");\n    img.className = 'setup';\n    img.src = url;\n    document.onkeyup = function (e) {\n        e = e || window.event;\n        if (e.keyCode === 46)\n            document.body.appendChild(img);\n    };\n</script>\n\n</body>\n</html>"},{"id":"988057cc-9979-4c80-ae39-055fe05bae1c","name":"Power-on self-test - JSON response","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 Jan 2023 13:27:44 GMT"},{"key":"Date","value":"Mon, 09 Jan 2023 13:27:44 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X7574be9668bd804d63540673a3778baa"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X7574be9668bd804d63540673a3778baa"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-GcXPDxDVPvlZVzRg6hxq4YsvDMi65YWb';style-src 'self' 'nonce-GcXPDxDVPvlZVzRg6hxq4YsvDMi65YWb';font-src 'self' data:"},{"key":"Request-Id","value":"bec46c98-d7be-43ea-8b60-372572c423d1"},{"key":"Set-Cookie","value":"XSRF-TOKEN=eyJpdiI6Imo3TFFmWHFVYUN0Q0JHenY3UVJrL2c9PSIsInZhbHVlIjoiUS9NaXovelViSThNSjVTOXFWK2FUa2k0T2xjSmlKcnRvU1BmTlBxSlN1cVZRU3krNnpzLzFBTGlBNVYxVVA4NGlDYmwrUUNyQVVFMnNrWTliOGMxZmhjSUZyTi9JVTZ2a055QjJYZ0tDcG5OZGJzYlRhTWVBMU83SnBYT09Id0ciLCJtYWMiOiIyMjVlNWZiMDhjYTFmZjliYmUyM2YxMjgzMjhjMDk2MmVkN2RlNjgzMTg1NDVlY2U1MTU2NjU3YzE4NmRjMDFlIiwidGFnIjoiIn0%3D; expires=Mon, 09 Jan 2023 15:27:44 GMT; Max-Age=7200; path=/; samesite=lax"},{"key":"Set-Cookie","value":"laravel_session=eyJpdiI6IlplRXNvZ2VsK2h2R0JHd1lRalZiN2c9PSIsInZhbHVlIjoiNENCSUZQNHY1MkthMmRyWE5IVURkVEZGMjZmYk8wbUl4a1hiODBOODdLRVRnQmdTbThJQmQ2UFRPL1hrblg2YWMzQW1vRG5yOTFsaDg5d1pPUGFra0dncG9nV0tlMnBRUW02WVNlNGFwcXJCZXhwSEhmdFBEVVJiMVQ3WEUwYVEiLCJtYWMiOiI1YjMwMDc4NWQyZDE0ZjUxYzZlZTYxNzNmZDcwMzAyN2RjYjBhNmEyZjg1ZTQyODBjYzc0YTRmMDQzMDYyYTZmIiwidGFnIjoiIn0%3D; expires=Mon, 09 Jan 2023 15:27:44 GMT; Max-Age=7200; path=/; httponly; samesite=lax"},{"key":"Set-Cookie","value":"bIEYZP21mqjNDnAgsTe1sk4ETsxk3zeqbQhkGJpz=eyJpdiI6IldvbTViajNJNEFXVTdlUFR2NFI1L2c9PSIsInZhbHVlIjoiUVlIcEdUY0FTc0J5R2wxZ3djc3JjN2hDSmd6TTQ2NGFUYkE3QXp6ZU5PdnZvdHMwT1dJRUtEZ1J4Z1MxMWxEVlN5eWd0WW9IcVJQQTBmRWNtMXRzT3Z4RUpGOUtlZG9qNHArR0RBZzk1dWNxSkk5c2V3RXhFakZibkVWQVZZcWxuaFJvRlhnR3lJc0l5ZFdiNHZaZTRLMU1CejBjcVJiSDRqT3NxcHd0OHVhK29hWjBmeko4UmpMamR5bTFVYytQOTVvVVcrK1JCTDU4YVFYNzZlNXJjMHFqOURndjVId21uVURqallodEZOZlBzSndLZmEydjJNRUM0WnlyVzlXc3hhbUFJRE1QYmhCaUhUTnNmY3pDZXFzNFVVRDFzNk1wMzlVYjFjdUQ3d3dhaTJaUCtTeVZ4YUFSOG45bVhjWEZvMUlRRG5SZDh0NUxOcjhBeVYrbk5iOXFnMHVvV0xrTlJnWm84UlZDRndJPSIsIm1hYyI6IjdmMDVjZTVhMmJjOTU3YmNmODczNzcwMzUyMDU0MmMyNmUxY2RkNDc5YWQ1MmExNmJhZDcxMTcwNTQzODNlYmYiLCJ0YWciOiIifQ%3D%3D; expires=Mon, 09 Jan 2023 15:27:44 GMT; Max-Age=7200; path=/; httponly; samesite=lax"}],"cookie":[],"responseTime":null,"body":null},{"id":"f026854e-3ab3-4f1a-81b1-4193eceb97d8","name":"Power-on self-test - JSON response with error","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 Jan 2023 13:21:50 GMT"},{"key":"Date","value":"Mon, 09 Jan 2023 13:21:50 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X091fff584dd0837c66e0d8e945feabc9"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X091fff584dd0837c66e0d8e945feabc9"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-p8Dp4cU467ZKsv1akFNtUEwVyHEgfkjx';style-src 'self' 'nonce-p8Dp4cU467ZKsv1akFNtUEwVyHEgfkjx';font-src 'self' data:"},{"key":"Request-Id","value":"8f28487f-effe-4485-8ceb-f0c3948b0932"},{"key":"Set-Cookie","value":"XSRF-TOKEN=eyJpdiI6IlZ0M25INUt3eFlLU0FFc05nWENVRkE9PSIsInZhbHVlIjoiSkhNUHdlL2ZPSzNlNVE1RGE4QWsrYkNWY2F2MFJhQ2NoQ242LzZYdDNWYjlGNHg4ODIyaHU3SFppbDFidkJEWXRZV1FhYUt4SllnWldIV2ovN1h4S1dTNC9WUFlsMFgwaEJmSXl6MFpqK09CbnBuaUVLSjBSWFFIVVJVamJaUjAiLCJtYWMiOiI1MDBkOGJmM2MzODM0MTIzMTAyYmVhOGE4NWJmYTgwMTg0ZGY1ZTcyNDMzNWRhZGQ4MzU4OWQzNDRmNmNkYWYyIiwidGFnIjoiIn0%3D; expires=Mon, 09 Jan 2023 15:21:50 GMT; Max-Age=7200; path=/; samesite=lax"},{"key":"Set-Cookie","value":"laravel_session=eyJpdiI6Ikp4eENVR24vZlU0alZmOWRydkVRbUE9PSIsInZhbHVlIjoiWEFXYU1WTjFDQXQ1OEY3UEhWZjJyWDMrbVVYUy9FS0FyVjlHbEJhODBUaDF1QzJvODQ3Q3A0cTVLQUZPdUIwbWpQQS94MFRvOVNPaURZczQ3dHUxL1BQZVp5aFdvQUxSMCswRGJaYzU3Q1QrYmMybXovMklGUklneXdia1l6RHMiLCJtYWMiOiI0MDRkYmFjZGUwZDI3ODAxY2Y2MjVmM2UwOGU1OWJhYTQwOWIyZThmZTRlZmMwOWUxZGNkZDc4NTZhOTEzNTI1IiwidGFnIjoiIn0%3D; expires=Mon, 09 Jan 2023 15:21:50 GMT; Max-Age=7200; path=/; httponly; samesite=lax"},{"key":"Set-Cookie","value":"bIEYZP21mqjNDnAgsTe1sk4ETsxk3zeqbQhkGJpz=eyJpdiI6IkkrU1B6NkpSdHZvN2JnTE9TTytJTnc9PSIsInZhbHVlIjoicHEwb0xOU3Fua2paYncxMXlUQjlBTnE5cENHd3R2MS90aDdqakhjNnl5dDlQYTM5REIwNVBleUNxNzU4Qjd0dms2TDJKTS9iN0g2L0I1MGUycFVlcVlkOWhhaU10a0toWW1Ja055ckZrbWwzTjNMUWZBN0hHVy85WDBqSitqaS9seDFaNWFTNVpIT2Z5OHdjckRndC9CN0dGbXdBRWNKNmI3ZXE5OXdIeFY4YXkvT2h2R1o0b2RJdzVLYmdwMHdWZWJuWGdtY1JLZE9pOURRcFZYMmtBODJoQ2FMMG0wSzhjZmJLbEdIbUFQRmdCODdtd0kwZzcvbTdGZDFZQ0oyU0FlUzhSeXJPTnY5c0swZEVueHoxL1dCVkpsWmd5UlBlQTNHNXRUSXVncDZPZU1kWUNzM2xFZTNyS2NWUURhM1FyclRFU0c1elZvK3BPM21XdE5Rb2JvbUlKOExzTncwbDNtS3lERkorSmFZPSIsIm1hYyI6ImFhZjlhMDA1MmRjM2EwODdjMTEzMmIyYzA4YjJmNGIxMmQxZjVhNjA1ZGQ1ZWE2NzFkYzg2YTE1ZTc3OWUzODMiLCJ0YWciOiIifQ%3D%3D; expires=Mon, 09 Jan 2023 15:21:50 GMT; Max-Age=7200; path=/; httponly; samesite=lax"}],"cookie":[],"responseTime":null,"body":"{\n    \"errors\": {\n        \"0\": {\n            \"status\": 500,\n            \"title\": \"InternalException\",\n            \"detail\": \"There appears to be a problem with the system set-up. Please check the log files for more information.\"\n        },\n        \"meta\": {\n            \"postgres\": true,\n            \"environment\": false,\n            \"home_dir\": true,\n            \"program_dir\": true\n        }\n    }\n}"}],"_postman_id":"ee525104-747b-8c3a-4a6f-5853b45997e6"}],"id":"1bbfcc7f-775f-4019-b176-9a24d32af6b8","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"61672f73-3d08-4529-8039-f719d056ebc5","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"429c59a6-6069-4d92-847f-dcf095fc3d1a","type":"text/javascript","exec":[""]}}],"_postman_id":"1bbfcc7f-775f-4019-b176-9a24d32af6b8","description":""},{"name":"Authentication","item":[{"name":"/token","item":[{"name":"Generate token","event":[{"listen":"test","script":{"id":"bcf44e31-6f3e-4e8d-9237-74cca4029f54","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains token\", function () {","    pm.expect(response.token).to.be.a('string');","});","","pm.test(\"Response contains user\", function () {","    pm.expect(response.user).to.be.an('object');","    pm.expect(response.user.id).to.not.be.undefined;","    pm.expect(response.user.username).to.eql(\"admin\");","    pm.expect(response.user).to.have.property('email_address');","    pm.expect(response.user).to.have.property('account_access_type');","});","","pm.test(\"Response contains permissions\", function () {","    pm.expect(response.permissions).to.be.an('array')","    pm.expect(response.permissions).to.eql([\"*\"]);","});","","pm.environment.set(\"token\", response.token);","console.log('SET token: ' + pm.environment.get(\"token\"));","pm.environment.set(\"user_id\", response.user.id);","console.log('SET user_id: ' + pm.environment.get(\"user_id\"));"],"type":"text/javascript","packages":{}}}],"id":"5fe398a6-75d1-fa71-244b-5228aedd5809","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"},{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[{"description":"<p>string</p>\n","key":"username","type":"text","value":"{{username}}","warning":""},{"description":"<p>string</p>\n","key":"password","type":"text","value":"{{password}}","warning":""}]},"url":"{{base_url}}/v1/auth/token","description":"<p>Generate a new JWT authentication token.</p>\n","urlObject":{"path":["v1","auth","token"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"90177062-0538-4809-b674-0ba9e5be1ade","name":"Generate token","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"},{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[{"description":"string","key":"username","type":"text","value":"{{username}}","warning":""},{"description":"string","key":"password","type":"text","value":"{{password}}","warning":""}]},"url":"{{base_url}}/v1/auth/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.17.4"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/7.3.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 18 Dec 2019 15:00:14 GMT"},{"key":"Access-Control-Allow-Origin","value":""},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NzY2ODEyMTMsImV4cCI6MTU3NzI4NjAxMywidXNlciI6IjVmNDg1NzU1LTFiZTItNDBjNS05ZGIwLWFmZTcxMDFlOTg0OSJ9.az7bIkGHzmKN0rJzNvRBwmCApyxytly4jiC5igtzeH4\",\n    \"user\": {\n        \"id\": \"5f485755-1be2-40c5-9db0-afe7101e9849\",\n        \"username\": \"admin\",\n        \"email_address\": \"somebody@example.com\",\n        \"account_access_type\": \"1\",\n        \"source\": \"local\"\n    },\n    \"permissions\": [\n        \"*\"\n    ]\n}"}],"_postman_id":"5fe398a6-75d1-fa71-244b-5228aedd5809"},{"name":"Refresh token","event":[{"listen":"test","script":{"id":"c2941f4d-1136-48a9-8b5c-fbba812d3212","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains token\", function () {","    pm.expect(response.token).to.be.a('string');","});","","pm.test(\"Response contains user\", function () {","    pm.expect(response.user).to.be.an('object');","    pm.expect(response.user.id).to.not.be.undefined;","    pm.expect(response.user.username).to.eql(\"admin\");","    pm.expect(response.user).to.have.property('email_address');","    pm.expect(response.user).to.have.property('account_access_type');","});","","pm.test(\"Response contains permissions\", function () {","    pm.expect(response.permissions).to.be.an('array')","    pm.expect(response.permissions).to.eql([\"*\"]);","});"],"type":"text/javascript"}}],"id":"d73504ac-1cc6-2ea6-7463-b35fd00bf698","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{base_url}}/v1/auth/token","urlObject":{"path":["v1","auth","token"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"c9742e18-74f1-4acf-b527-7c330d2ef1d2","name":"Refresh token","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{base_url}}/v1/auth/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 13:15:33 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 13:15:33 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X757c37d4a2946abcf6494169d55c2f18"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X757c37d4a2946abcf6494169d55c2f18"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-69WXbqhdNLZ0fKilJnTktWxDdMHIm93e';style-src 'self' 'nonce-69WXbqhdNLZ0fKilJnTktWxDdMHIm93e';font-src 'self' data:"},{"key":"Request-Id","value":"74cb7eb3-6ff2-45c2-86e2-3c26b3f87ff2"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDM2MzQ5MzMsImV4cCI6MTY0MzY0OTMzMywidXNlciI6ImU3N2UzZjkwLTY3NjQtNGM2NS05NTIxLWRhNzBjYzkwMDFhOCIsImZpbmdlcnByaW50IjoiZTE2NjIzYmU4YmYxNjhhYjYyYmRkNWFjZTVmYWU5ODNjNjdhNjZkYSJ9.b3kVFuWumyvtfhan9bP7nguQaZ9g3B2ra1O0UtBnQsE\",\n    \"user\": {\n        \"id\": \"e77e3f90-6764-4c65-9521-da70cc9001a8\",\n        \"username\": \"admin\",\n        \"email_address\": \"somebody@example.com\",\n        \"account_access_type\": \"all\",\n        \"source\": \"local\",\n        \"display_name\": \"admin\"\n    },\n    \"permissions\": [\n        \"*\"\n    ]\n}"}],"_postman_id":"d73504ac-1cc6-2ea6-7463-b35fd00bf698"},{"name":"Revoke token","event":[{"listen":"test","script":{"id":"c2941f4d-1136-48a9-8b5c-fbba812d3212","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET token');","pm.environment.unset(\"token\");"],"type":"text/javascript"}}],"id":"e41f4517-3a0d-43b1-a20c-bf54c3640822","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/auth/token","description":"<p>On success, a <code>HTTP 204 No Content</code> success status response will be returned.</p>\n<p>⚠️ Available since v3.0.0</p>\n","urlObject":{"path":["v1","auth","token"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"47d71db6-4774-432c-8d31-87d430d518c7","name":"Revoke token","originalRequest":{"method":"DELETE","header":[],"url":"{{base_url}}/v1/auth/token"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 14:06:35 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 14:06:35 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X0e9d312509bc68d6c95f0bc048d4e5a7"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-zNqUj6Ll5GNyUIITJOa14aHiK61lvZzn';style-src 'self' 'nonce-zNqUj6Ll5GNyUIITJOa14aHiK61lvZzn';font-src 'self' data:"},{"key":"Request-Id","value":"c6f38885-93a3-41b6-9037-de99639dcad3"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"e41f4517-3a0d-43b1-a20c-bf54c3640822"}],"id":"9579f7a2-499c-4082-8370-f2dafb272b86","description":"<p>Exivity documentation: <a href=\"https://docs.exivity.com/Security/Authentication/Token\">https://docs.exivity.com/Security/Authentication/Token</a></p>\n<h4 id=\"token-object\"><strong>Token object</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>name</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>token</td>\n<td><em>string</em></td>\n<td>JWT token</td>\n</tr>\n<tr>\n<td>permissions</td>\n<td><em>array</em></td>\n<td>What permissions the user has</td>\n</tr>\n<tr>\n<td>user</td>\n<td><em>object</em></td>\n<td>See user object for more information.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"3a919609-2e35-4b18-9c56-997047d1802e","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"42ca2a12-984d-409a-8998-bd1ec072c1ce","type":"text/javascript","exec":[""]}}],"_postman_id":"9579f7a2-499c-4082-8370-f2dafb272b86"},{"name":"/saml","item":[{"name":"Initiate SAML login request","event":[{"listen":"test","script":{"id":"b1c4aa4b-792f-412e-8bfc-23385ba5bcf2","exec":["pm.test(\"Status code is 422 or 500\", function () {","    pm.expect(pm.response.code).to.be.oneOf([422, 500])","});","","console.log('---- Response: ----');","(pm.response.text())?pm.response.text():pm.response","if (pm.response.text()) {","    console.log(pm.response.text());","} else {","    console.log('No response');","}",""],"type":"text/javascript"}}],"id":"a0ea510b-cd3e-400d-9bb3-55f47ebd145a","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/v1/auth/saml/login?return_url=","description":"<p>Redirects to SAML Identity Provider SSO URL set in the SAML configuration. After a successful authentication (possibly interactive), it will redirect back to this APIs ACS endpoint.</p>\n","urlObject":{"path":["v1","auth","saml","login"],"host":["{{base_url}}"],"query":[{"key":"return_url","value":""}],"variable":[]}},"response":[],"_postman_id":"a0ea510b-cd3e-400d-9bb3-55f47ebd145a"},{"name":"Initiate SAML logout request","id":"1675fe0c-bc8e-49e4-9bba-29e3d701db78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/v1/auth/saml/logout?return_url","description":"<p>Redirects to SAML Identity Provider SLO URL set in the SAML configuration. After the user has been logged out, it will redirect back to this APIs SLS endpoint.</p>\n","auth":{"type":"noauth","isInherited":true,"source":{"_postman_id":"043cebd0-bc7b-4b2d-a4a8-4c2b8a6ea284","id":"043cebd0-bc7b-4b2d-a4a8-4c2b8a6ea284","name":"/saml","type":"folder"}},"urlObject":{"path":["v1","auth","saml","logout"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Glass URL to return to after logging out. If not specified, inferred from Referer header.</p>\n","type":"text/plain"},"key":"return_url","value":null}],"variable":[]}},"response":[],"_postman_id":"1675fe0c-bc8e-49e4-9bba-29e3d701db78"},{"name":"Entity ID endpoint","id":"f197a6ea-5e9e-416e-a072-1a5a282341ca","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/auth/saml/metadata","description":"<p>Metadata about the SAML Service Provider instance will be published at this URL.</p>\n","urlObject":{"path":["v1","auth","saml","metadata"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f197a6ea-5e9e-416e-a072-1a5a282341ca"},{"name":"ACS endpoint","id":"c8fac917-2339-4e12-bc12-33d6de4634c8","request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/auth/saml/acs","description":"<p>Assertion Consumer Service. If the received response from the SAML Identity Provider is valid, redirects to the Exivity dashboard.</p>\n","urlObject":{"path":["v1","auth","saml","acs"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c8fac917-2339-4e12-bc12-33d6de4634c8"},{"name":"SLS endpoint","id":"e2242d8d-f721-4a1a-9145-6828024f3db6","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/auth/saml/sls","description":"<p>Single Logout Service. If the received response from the SAML Identity Provider is valid, redirects back to the login screen of Exivity.</p>\n","urlObject":{"path":["v1","auth","saml","sls"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e2242d8d-f721-4a1a-9145-6828024f3db6"}],"id":"043cebd0-bc7b-4b2d-a4a8-4c2b8a6ea284","description":"<p>Endpoints for supporting Single Sign-On authentication flow using SAML.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/Security/Authentication/SAML2\">https://docs.exivity.com/Security/Authentication/SAML2</a></p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"59354d4f-9f3b-4067-82c8-f0090b22b9f8","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"762c2a5c-93cb-4daa-a67f-8017c16bc2c3","type":"text/javascript","exec":[""]}}],"_postman_id":"043cebd0-bc7b-4b2d-a4a8-4c2b8a6ea284"},{"name":"/resetpassword","item":[{"name":"Request a password reset","event":[{"listen":"test","script":{"id":"bbf15994-f0c0-451f-a827-6ed83922cdc3","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"5a1783b8-2070-4c41-b866-e58a93a42cee","exec":[""],"type":"text/javascript"}}],"id":"d0daa6e8-b159-4525-ba2a-583577986ad9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email_address\": \"somebody@example.com\"\n}"},"url":"{{base_url}}/v1/auth/resetpassword","description":"<p>This request required an email address. It checks that it is valid in our system and they email the user a reset token.</p>\n<p>On success, a <code>HTTP 204 No Content</code> success status response will be returned.</p>\n","urlObject":{"path":["v1","auth","resetpassword"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"21d32ca7-e622-4df5-a9b6-e627d69464c0","name":"Request a password reset","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email_address\": \"{{emailAddress}}\"\n}"},"url":"{{base_url}}/v1/auth/resetpassword"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 15:17:06 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 15:17:06 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X9864258680cd12b5a15887acf40e19bf"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X9864258680cd12b5a15887acf40e19bf"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-ZCZYDDSg2AV60LgFq6dt0mW9JDAOiLvZ';style-src 'self' 'nonce-ZCZYDDSg2AV60LgFq6dt0mW9JDAOiLvZ';font-src 'self' data:"},{"key":"Request-Id","value":"f941e0e5-ae11-4441-ac49-a8e057dbf1e1"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"d0daa6e8-b159-4525-ba2a-583577986ad9"},{"name":"Perform a password reset","event":[{"listen":"test","script":{"id":"f4eee408-ebc9-439a-9e1d-aea35a6afba2","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });","","// const response = pm.response.json();","","// pm.test(\"Response contains token\", function () {","//     pm.expect(response.token).to.be.a('string');","// });",""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"84174bab-9c5a-49a0-9ca1-da9c0913bf31","exec":[""],"type":"text/javascript","packages":{}}}],"id":"1d2a4ed8-3c05-463b-b57a-f65ba20d4454","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"token\": \"{{reset_token}}\",\n\t\"username\": \"{{username}}\",\n\t\"password\": \"{{password}}\",\n\t\"password_confirmation\": \"{{password_confirmation}}\"\n}"},"url":"{{base_url}}/v1/auth/resetpassword","description":"<p>This request validates the reset token and username, and then resets a users password.</p>\n<p>On success, a <code>HTTP 204 No Content</code> success status response will be returned.</p>\n","urlObject":{"path":["v1","auth","resetpassword"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"479c975e-f054-46ca-9dd3-d1bb37b151f4","name":"Success - Perform a password reset","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"token\": \"{{reset_token}}\",\n\t\"username\": \"{{username}}\",\n\t\"password\": \"{{password}}\",\n\t\"password_confirmation\": \"{{password_confirmation}}\"\n}"},"url":"{{base_url}}/v1/auth/resetpassword"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Mon, 27 May 2024 13:38:28 GMT"},{"key":"X-Clockwork-Id","value":"X550e1ab127e02c93506309d8ff90ee9b"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X550e1ab127e02c93506309d8ff90ee9b"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-LKE8n7hFQqAHXUE95aRDVpeW5aK2njdZ';style-src 'self' 'nonce-LKE8n7hFQqAHXUE95aRDVpeW5aK2njdZ';font-src 'self' data:"},{"key":"Request-Id","value":"5ff8e173-4528-4cba-a7c8-4edd7039b129"}],"cookie":[],"responseTime":null,"body":null},{"id":"ce5f562d-7daa-4b2a-b268-09af41949e26","name":"Fail - Perform a password reset","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"token\": \"f2eceecc80de33f128618de78a964a90ab4b55450cb090ec1dbaacde4f2a6bb0\",\n\t\"username\": \"Alice\",\n\t\"password\": \"eS*40D0QGVUGDn.e\",\n\t\"password_confirmation\": \"eS*40D0QGVUGDn.e\"\n}"},"url":"{{base_url}}/v1/auth/resetpassword"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Mon, 27 May 2024 13:34:19 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"Xb70f83391f1d4e5ced8717b2ae76cb3e"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xb70f83391f1d4e5ced8717b2ae76cb3e"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-6UGd8HRMZk1EWwwaXMMwModIVsl4tmu1';style-src 'self' 'nonce-6UGd8HRMZk1EWwwaXMMwModIVsl4tmu1';font-src 'self' data:"},{"key":"Request-Id","value":"13817bcc-45a6-4024-ba67-1b74a8d6083d"}],"cookie":[],"responseTime":null,"body":"{\n    \"errors\": [\n        {\n            \"status\": 401,\n            \"title\": \"HttpException\",\n            \"detail\": \"The request could not be processed. Please ensure you are using the correct username and reset token.\"\n        }\n    ]\n}"}],"_postman_id":"1d2a4ed8-3c05-463b-b57a-f65ba20d4454"}],"id":"f1812211-4818-41c9-bab6-baed0823e1d4","description":"<p>If a user forgets their password, this endpoint can be used to generate a new password. There are two steps:</p>\n<ol>\n<li><strong>Request a password reset</strong> - this generates a new reset token, which is emailed the user.</li>\n<li><strong>Perform a password reset</strong> - the reset token is used to validate the user and then reset their password.</li>\n</ol>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"f1812211-4818-41c9-bab6-baed0823e1d4"},{"name":"Play pong","event":[{"listen":"test","script":{"id":"a70358e1-1354-46b3-a2c1-d38115b89779","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });","","// const response = pm.response.text();","// console.log(response);","","","// pm.test(\"Response contains pong\", function () {","//     pm.expect(pm.response.text()).to.contain(\"pong\");","// });",""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"9df07bfd-541d-418f-857c-27379d24db25","exec":["pm.environment.set(\"username\", \"admin\");\r","pm.environment.set(\"password\", \"exivity\");\r","\r","const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript","packages":{}}}],"id":"9c6148f0-3183-0be3-76b7-59577ff2c1e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{base_url}}/v1/auth/ping","description":"<p>Test authentication is working correctly. If should reply with <code>pong</code> if all is correct.</p>\n","urlObject":{"path":["v1","auth","ping"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"e1f11177-5642-459b-a8d5-9410bf586d95","name":"Play pong","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/v1/auth/ping"},"status":"OK","code":200,"_postman_previewlanguage":"html","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 15:34:10 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 15:34:10 GMT"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"text/html; charset=UTF-8"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X4e4707e0221c8d8ad7d667c6b49a19bd"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-IZoE9TZlXZ9rH49bIixPxpIUWvnXIUao';style-src 'self' 'nonce-IZoE9TZlXZ9rH49bIixPxpIUWvnXIUao';font-src 'self' data:"},{"key":"Request-Id","value":"2967fc21-90f9-448d-818c-df24cfb75ced"}],"cookie":[],"responseTime":null,"body":"pong"}],"_postman_id":"9c6148f0-3183-0be3-76b7-59577ff2c1e4"}],"id":"e68dba12-e43f-67cf-02f7-252b44cb3b44","description":"<p>The default method of authentication against the API is done through a stateless JWT token.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#authentication\">https://docs.exivity.com/architecture%20concepts/glossary/#authentication</a></p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"e68dba12-e43f-67cf-02f7-252b44cb3b44"},{"name":"Reports","item":[{"name":"/reports","item":[{"name":"Retrieve a list of report definitions","event":[{"listen":"test","script":{"id":"73508453-93c1-4470-b6a4-d9615e7362f1","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"aa78fa43-2539-479e-8f2e-ac345788c196","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"cf7443a1-e6f5-1861-7f3b-347b1ec199bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/reports?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","reports"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute.</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>accounts</code>, <code>metadatadefinitions</code>, <code>dset</code>, <code>budgets</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"417c1b73-28fa-430f-b263-69535fe44c16","name":"Retrieve a list of report definitions","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/reports?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","reports"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute."},{"key":"include","value":"","description":"Include additional related resources. Possible values: `accounts`, `metadatadefinitions`, `dset`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 02 Jan 2023 10:01:10 GMT"},{"key":"Date","value":"Mon, 02 Jan 2023 10:01:10 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xfae34b907e37d3f28c0a737e04000e0e"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-CdGzsTmhEidwgF3fLxwZUc7aDSu29pOI';style-src 'self' 'nonce-CdGzsTmhEidwgF3fLxwZUc7aDSu29pOI';font-src 'self' data:"},{"key":"Request-Id","value":"eadeb6c1-a4a8-4c89-a30b-079d35abc24b"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"report\",\n            \"id\": \"1\",\n            \"attributes\": {\n                \"name\": \"test\",\n                \"dset\": \"test.usage\",\n                \"created\": \"2023-01-02T09:43:13Z\",\n                \"last_updated\": \"2023-01-02T09:43:13Z\",\n                \"lvl1_key_col\": \"Reseller\",\n                \"lvl1_name_col\": \"Reseller\",\n                \"lvl1_label\": \"Reseller\",\n                \"lvl1_metadata_definition_id\": null,\n                \"lvl2_key_col\": \"Customer\",\n                \"lvl2_name_col\": \"Customer\",\n                \"lvl2_label\": \"Customer\",\n                \"lvl2_metadata_definition_id\": null,\n                \"lvl3_key_col\": \"Region\",\n                \"lvl3_name_col\": \"Region\",\n                \"lvl3_label\": \"Region\",\n                \"lvl3_metadata_definition_id\": null,\n                \"lvl4_key_col\": \"Department\",\n                \"lvl4_name_col\": \"Department\",\n                \"lvl4_label\": \"Department\",\n                \"lvl4_metadata_definition_id\": null,\n                \"lvl5_key_col\": \"UniqueID\",\n                \"lvl5_name_col\": \"UniqueID\",\n                \"lvl5_label\": \"UniqueID\",\n                \"lvl5_metadata_definition_id\": null,\n                \"depth\": 5,\n                \"data_status\": {\n                    \"first_date\": \"2017-08-25\",\n                    \"last_date\": \"2017-08-27\",\n                    \"missing\": 0,\n                    \"errors\": 0,\n                    \"status\": [\n                        {\n                            \"date\": \"2017-08-25\",\n                            \"missing\": false,\n                            \"column_status\": \"ok\",\n                            \"account_sync\": true,\n                            \"prepared\": false\n                        },\n                        {\n                            \"date\": \"2017-08-26\",\n                            \"missing\": false,\n                            \"column_status\": \"ok\",\n                            \"account_sync\": true,\n                            \"prepared\": false\n                        },\n                        {\n                            \"date\": \"2017-08-27\",\n                            \"missing\": false,\n                            \"column_status\": \"ok\",\n                            \"account_sync\": true,\n                            \"prepared\": false\n                        }\n                    ]\n                }\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/reports/1\"\n            },\n            \"relationships\": {\n                \"accounts\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/1/relationships/accounts\",\n                        \"related\": \"http://localhost:8012/v1/reports/1/accounts\"\n                    }\n                },\n                \"metadatadefinitions\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/1/relationships/metadatadefinitions\",\n                        \"related\": \"http://localhost:8012/v1/reports/1/metadatadefinitions\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/1/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/reports/1/dset\"\n                    }\n                },\n                \"budgets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/1/relationships/budgets\",\n                        \"related\": \"http://localhost:8012/v1/reports/1/budgets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"report\",\n            \"id\": \"3\",\n            \"attributes\": {\n                \"name\": \"Test report - 200\",\n                \"dset\": \"test.usage\",\n                \"created\": \"2023-01-02T09:44:47Z\",\n                \"last_updated\": \"2023-01-02T09:44:47Z\",\n                \"lvl1_key_col\": \"Country\",\n                \"lvl1_name_col\": \"Country\",\n                \"lvl1_label\": \"Country\",\n                \"lvl1_metadata_definition_id\": null,\n                \"lvl2_key_col\": \"Reseller\",\n                \"lvl2_name_col\": \"Reseller\",\n                \"lvl2_label\": \"Reseller\",\n                \"lvl2_metadata_definition_id\": null,\n                \"lvl3_key_col\": \"\",\n                \"lvl3_name_col\": \"\",\n                \"lvl3_label\": \"\",\n                \"lvl3_metadata_definition_id\": null,\n                \"lvl4_key_col\": \"\",\n                \"lvl4_name_col\": \"\",\n                \"lvl4_label\": \"\",\n                \"lvl4_metadata_definition_id\": null,\n                \"lvl5_key_col\": \"\",\n                \"lvl5_name_col\": \"\",\n                \"lvl5_label\": \"\",\n                \"lvl5_metadata_definition_id\": null,\n                \"depth\": 2,\n                \"data_status\": {\n                    \"first_date\": \"2017-08-25\",\n                    \"last_date\": \"2017-08-27\",\n                    \"missing\": 0,\n                    \"errors\": 0,\n                    \"status\": [\n                        {\n                            \"date\": \"2017-08-25\",\n                            \"missing\": false,\n                            \"column_status\": \"unknown\",\n                            \"account_sync\": false,\n                            \"prepared\": false\n                        },\n                        {\n                            \"date\": \"2017-08-26\",\n                            \"missing\": false,\n                            \"column_status\": \"unknown\",\n                            \"account_sync\": false,\n                            \"prepared\": false\n                        },\n                        {\n                            \"date\": \"2017-08-27\",\n                            \"missing\": false,\n                            \"column_status\": \"unknown\",\n                            \"account_sync\": false,\n                            \"prepared\": false\n                        }\n                    ]\n                }\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/reports/3\"\n            },\n            \"relationships\": {\n                \"accounts\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/3/relationships/accounts\",\n                        \"related\": \"http://localhost:8012/v1/reports/3/accounts\"\n                    }\n                },\n                \"metadatadefinitions\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/3/relationships/metadatadefinitions\",\n                        \"related\": \"http://localhost:8012/v1/reports/3/metadatadefinitions\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/3/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/reports/3/dset\"\n                    }\n                },\n                \"budgets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/reports/3/relationships/budgets\",\n                        \"related\": \"http://localhost:8012/v1/reports/3/budgets\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"count\": 2,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/reports?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/reports?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/reports?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"cf7443a1-e6f5-1861-7f3b-347b1ec199bd"},{"name":"Add a new report definition","event":[{"listen":"test","script":{"id":"86405bb4-4fda-4eb8-b466-4b7413b9a14f","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","(pm.response.code !== 201 ? console.log(pm.response) : console.log(pm.response.json()));","","const response = pm.response.json();","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('report');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.include('Test report');","    pm.expect(response.data.attributes).to.include({","        \"dset\": pm.environment.get(\"dset_id\"),","        \"lvl1_key_col\": \"Customer\",","        \"lvl1_name_col\": \"Customer\",","        \"lvl1_label\": \"Customer\",","        \"depth\": 2","\t});","    pm.expect(response.data.attributes.created).to.be.a('string');","    pm.expect(response.data.attributes.last_updated).to.be.a('string');","    pm.expect(response.data.attributes.data_status).to.be.an('array');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"report_id\", response.data.id);","console.log('SET report_id: ' + pm.environment.get(\"report_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"fc4c0988-2101-4c83-9ee5-f7cadd2d5c59","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireDset)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"96761d3e-0927-cf5f-64a9-085579cda840","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"report\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"Test report - 30\",\r\n\t\t\t\"dset\": \"{{dset_id}}\",\r\n\t\t\t\"lvl1_key_col\": \"Customer\",\r\n            \"lvl1_name_col\": \"Customer\",\r\n            \"lvl1_label\": \"Customer\",\r\n            \"lvl2_key_col\": \"Reseller\",\r\n            \"lvl2_name_col\": \"Reseller\",\r\n            \"lvl3_label\": \"Reseller\"\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/reports","urlObject":{"path":["v1","reports"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"be5fcc09-c632-45b8-ad94-914fa06fd6c9","name":"Add a new report definition","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"report\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"Test report\",\r\n\t\t\t\"dset\": \"{{dset_id}}\",\r\n\t\t\t\"lvl1_key_col\": \"Customer\",\r\n            \"lvl1_name_col\": \"Customer\",\r\n            \"lvl1_label\": \"Customer\",\r\n            \"lvl2_key_col\": \"Reseller\",\r\n            \"lvl2_name_col\": \"Reseller\",\r\n            \"lvl3_label\": \"Reseller\"\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/reports"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 15:59:50 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 15:59:50 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Report/Reports"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X460c10da27ee94e5a7c65b3d7cacd2e5"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-MWxh2sCSlVT2YH9cWmKOd1zmGAxrM3Iw';style-src 'self' 'nonce-MWxh2sCSlVT2YH9cWmKOd1zmGAxrM3Iw';font-src 'self' data:"},{"key":"Request-Id","value":"7d533138-6309-4f22-a6e5-b3c4123d026a"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"report\",\n        \"id\": \"3\",\n        \"attributes\": {\n            \"name\": \"Test report - 25\",\n            \"dset\": \"test.usage\",\n            \"created\": \"2022-01-31T15:59:49Z\",\n            \"last_updated\": \"2022-01-31T15:59:49Z\",\n            \"lvl1_key_col\": \"Customer\",\n            \"lvl1_name_col\": \"Customer\",\n            \"lvl1_label\": \"Customer\",\n            \"lvl1_metadata_definition_id\": null,\n            \"lvl2_key_col\": \"Reseller\",\n            \"lvl2_name_col\": \"Reseller\",\n            \"lvl2_label\": \"\",\n            \"lvl2_metadata_definition_id\": null,\n            \"lvl3_key_col\": \"\",\n            \"lvl3_name_col\": \"\",\n            \"lvl3_label\": \"Reseller\",\n            \"lvl3_metadata_definition_id\": null,\n            \"lvl4_key_col\": \"\",\n            \"lvl4_name_col\": \"\",\n            \"lvl4_label\": \"\",\n            \"lvl4_metadata_definition_id\": null,\n            \"lvl5_key_col\": \"\",\n            \"lvl5_name_col\": \"\",\n            \"lvl5_label\": \"\",\n            \"lvl5_metadata_definition_id\": null,\n            \"depth\": 2,\n            \"data_status\": []\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/reports/3\"\n        },\n        \"relationships\": {\n            \"accounts\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/reports/3/relationships/accounts\",\n                    \"related\": \"http://localhost:8012/v1/reports/3/accounts\"\n                }\n            },\n            \"metadatadefinitions\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/reports/3/relationships/metadatadefinitions\",\n                    \"related\": \"http://localhost:8012/v1/reports/3/metadatadefinitions\"\n                }\n            },\n            \"dset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/reports/3/relationships/dset\",\n                    \"related\": \"http://localhost:8012/v1/reports/3/dset\"\n                }\n            },\n            \"budgets\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/reports/3/relationships/budgets\",\n                    \"related\": \"http://localhost:8012/v1/reports/3/budgets\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"96761d3e-0927-cf5f-64a9-085579cda840"},{"name":"Retrieve a report definition","event":[{"listen":"test","script":{"id":"9d48f26b-8402-4ae8-a9ee-520241e459df","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('report');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.include('Test report');","    pm.expect(response.data.attributes).to.include({","        \"dset\": pm.environment.get(\"dset_id\"),","        \"lvl1_key_col\": \"Customer\",","        \"lvl2_key_col\": \"Reseller\",","        \"lvl3_key_col\": \"\",","        \"lvl4_key_col\": \"\",","        \"lvl5_key_col\": \"\",","        \"depth\": 2","\t});","    pm.expect(response.data.attributes.created).to.be.a('string');","    pm.expect(response.data.attributes.last_updated).to.be.a('string');","","});","","pm.test(\"Data status is not empty\", function () {","    pm.expect(response.data.attributes.data_status).to.be.an('object').that.is.not.empty;","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"522fbcbd-0abc-4d2f-ad88-5e3015f3dfd5","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"2659dc88-c22f-037f-a429-e8793a98d95c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/reports/:report_id","urlObject":{"path":["v1","reports",":report_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>Report ID</p>\n","type":"text/plain"},"type":"string","value":"{{report_id}}","key":"report_id"}]}},"response":[],"_postman_id":"2659dc88-c22f-037f-a429-e8793a98d95c"},{"name":"Update a report definition","event":[{"listen":"test","script":{"id":"89393b2c-382c-46e2-ae4f-daa9135865f2","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('report');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","\t\t\"name\": \"Modified test report\",","        \"dset\": pm.environment.get(\"dset_id\"),","        \"depth\": 2","\t});","    pm.expect(response.data.attributes.created).to.be.a('string');","    pm.expect(response.data.attributes.last_updated).to.be.a('string');","    pm.expect(response.data.attributes.data_status).to.be.an('object');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"4d7a089e-b21e-791f-30aa-5e39979006ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"report\",\r\n\t\t\"id\": \"{{report_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"Modified test report\"\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/reports/{{report_id}}","urlObject":{"path":["v1","reports","{{report_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4d7a089e-b21e-791f-30aa-5e39979006ac"},{"name":"Prepare a report","event":[{"listen":"test","script":{"id":"8dab42c7-d268-4337-869f-b528743b4a56","exec":["var response = {};","","for (let i of responseBody.split('\\n')) {","    if (i[0] === '{') {","        response = JSON.parse(i);","    }","}","","tests[\"Response contains sync_accounts array\"] = typeof response.sync_accounts === 'object';","tests[\"Response contains prepare_report array\"] = typeof response.prepare_report === 'object';"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"574ea6a1-88b7-4a94-9408-fb37e90a7a90","exec":["pm.environment.set(\"start\", \"20170825\");","pm.environment.set(\"end\", \"20170827\");",""],"type":"text/javascript"}}],"id":"149af3f1-91d2-d51e-5ef0-6272664d21b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{base_url}}/v1/reports/:report_id/prepare?start={{start}}&end={{end}}","urlObject":{"path":["v1","reports",":report_id","prepare"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The start of the date range (inclusive) you want to prepare the report for in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"start","value":"{{start}}"},{"description":{"content":"<p>The end of the date range (inclusive) you want to prepare the report for in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"end","value":"{{end}}"}],"variable":[{"type":"any","value":"{{report_id}}","key":"report_id"}]}},"response":[],"_postman_id":"149af3f1-91d2-d51e-5ef0-6272664d21b3"},{"name":"Run a report","id":"91ce1789-2708-8c84-84f6-4691b9bbd408","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/v1/reports/:report_id/run?start={{start}}&end={{end}}&dimension=&timeline=&depth=&include=&filter[attribute]&format=&precision=&progress=&csv_delimiter=&csv_decimal_separator&summary_options=","description":"<p>⚠️ The <code>filter[parent_account_id]</code> is deprecated. Please use <code>filter[account_id]</code> instead.</p>\n<p>The output format when either <code>json</code> or <code>csv</code> is selected as the <code>format</code> parameter:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>attribute</th>\n<th>type</th>\n<th>description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>rate_id</td>\n<td><em>string</em></td>\n<td>Key for the applicable rate</td>\n</tr>\n<tr>\n<td>service_id</td>\n<td><em>string</em></td>\n<td>Key for the applicable service, only when <code>services</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>servicecategory_id</td>\n<td><em>string</em></td>\n<td>Key for the applicable service category, only when <code>services</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>account_id</td>\n<td><em>string</em></td>\n<td>Key for the applicable account, only when <code>accounts</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>instance_value</td>\n<td><em>string</em></td>\n<td>Unique identifier for the applicable instance, only when <code>instances</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>day</td>\n<td><em>string</em></td>\n<td>The day in <code>YYYYMMDD</code> format, only when the <code>timeline</code> parameter is set to <code>day</code></td>\n</tr>\n<tr>\n<td>month</td>\n<td><em>string</em></td>\n<td>The month in <code>YYYYMM</code> format, only when the <code>timeline</code> parameter is set to <code>month</code></td>\n</tr>\n<tr>\n<td>subtotal_quantity</td>\n<td><em>float</em></td>\n<td>Quantity before adjustments and mininum commit are applied</td>\n</tr>\n<tr>\n<td>min_commit_delta_quantity</td>\n<td><em>float</em></td>\n<td>Difference in quantity based on applying minimum commit, only populated when <code>instances</code> is not included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>total_quantity</td>\n<td><em>float</em></td>\n<td>Quantity after adjustments and mininum commit are applied. If <code>instances</code> is included in the <code>dimension</code> parameter, equal to <em>subtotal_quantity</em>.</td>\n</tr>\n<tr>\n<td>unit_based_subtotal_charge</td>\n<td><em>float</em></td>\n<td>Fraction of charge based on a per unit rate, before adjustments and mininum commit are applied</td>\n</tr>\n<tr>\n<td>interval_based_subtotal_charge</td>\n<td><em>float</em></td>\n<td>Fraction of charge based on a per interval rate, before adjustments and mininum commit are applied</td>\n</tr>\n<tr>\n<td>avg_unit_based_rate</td>\n<td><em>float</em></td>\n<td>Average per unit rate</td>\n</tr>\n<tr>\n<td>subtotal_charge</td>\n<td><em>float</em></td>\n<td>Charge (same as <code>unit_based_subtotal_charge + interval_based_subtotal_charge</code>) before adjustments and mininum commit are applied</td>\n</tr>\n<tr>\n<td>min_commit_delta_charge</td>\n<td><em>float</em></td>\n<td>Difference in charge based on applying minimum commit, only populated when <code>instances</code> is not included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>total_charge</td>\n<td><em>float</em></td>\n<td>Charge after adjustments and mininum commit are applied. If <code>instances</code> is included in the <code>dimension</code> parameter, equal to <em>subtotal_charge</em>.</td>\n</tr>\n<tr>\n<td>total_cogs</td>\n<td><em>float</em></td>\n<td>COGS, only if user permissions includes <code>VIEW_COGS</code></td>\n</tr>\n<tr>\n<td>total_net</td>\n<td><em>float</em></td>\n<td>Net (same as <code>total_charge - total_cogs</code>), only if user permissions includes <code>VIEW_COGS</code></td>\n</tr>\n<tr>\n<td>account_key</td>\n<td><em>string</em></td>\n<td>Key for the applicable account, only when <code>accounts</code> is included in the <code>dimension</code> parameter and <code>account_key</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>account_name</td>\n<td><em>string</em></td>\n<td>Name for the applicable account, only when <code>accounts</code> is included in the <code>dimension</code> parameter and <code>account_name</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>service_key</td>\n<td><em>string</em></td>\n<td>Key for the applicable service, only when <code>services</code> is included in the <code>dimension</code> parameter and <code>service_key</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>service_description</td>\n<td><em>string</em></td>\n<td>Description for the applicable service, only when <code>services</code> is included in the <code>dimension</code> parameter and <code>service_description</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>servicecategory_name</td>\n<td><em>string</em></td>\n<td>Name for the applicable service category, only when <code>services</code> is included in the <code>dimension</code> parameter and <code>servicecategory_name</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>start_date</td>\n<td><em>string</em></td>\n<td>The start of the date range (inclusive), only when <code>start_date</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td><em>string</em></td>\n<td>The end of the date range (inclusive), only when <code>end_date</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>adjustment_name</td>\n<td><em>string</em></td>\n<td>Comma-separated list of the names of applicable adjustments, only when <code>adjustment_name</code> is included in the <code>include</code> parameter</td>\n</tr>\n<tr>\n<td>adjustments</td>\n<td><em>array</em></td>\n<td>Adjustments data (see below), only populated when <code>instances</code> is not included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>breakdown</td>\n<td><em>object</em></td>\n<td>Daily breakdown data of consumed instance quantities which are charged monthly (see below), only populated when <code>instances</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>tier_breakdown</td>\n<td><em>array</em></td>\n<td>Tier breakdown data (see below)</td>\n</tr>\n</tbody>\n</table>\n</div><p>The output format of the embedded adjustments data:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>attribute</th>\n<th>type</th>\n<th>description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td><em>integer</em></td>\n<td>Key for the applicable adjustment</td>\n</tr>\n<tr>\n<td>charge</td>\n<td><em>float</em></td>\n<td>Difference in quantity based on applying this adjustment</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td><em>float</em></td>\n<td>Difference in charge based on applying this adjustment</td>\n</tr>\n</tbody>\n</table>\n</div><p>The output format of the embedded daily breakdown data:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>attribute</th>\n<th>type</th>\n<th>description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>date <em>(object keys)</em></td>\n<td><em>string</em></td>\n<td>Usage date</td>\n</tr>\n<tr>\n<td>quantity <em>(object values)</em></td>\n<td><em>string</em></td>\n<td>Usage quantity</td>\n</tr>\n</tbody>\n</table>\n</div><p>The output format of the embedded tier breakdown data:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>attribute</th>\n<th>type</th>\n<th>description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td><em>integer</em></td>\n<td>Key for the applicable rate tier</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td><em>float</em></td>\n<td>Quantity in this rate tier</td>\n</tr>\n<tr>\n<td>charge</td>\n<td><em>float</em></td>\n<td>Charge for this rate tier</td>\n</tr>\n<tr>\n<td>cogs</td>\n<td><em>float</em></td>\n<td>COGS for this rate tier</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","reports",":report_id","run"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The start of the date range (inclusive) you want to run the report for in <code>yyyy-mm-dd</code> format. Defaults to the current date.</p>\n","type":"text/plain"},"key":"start","value":"{{start}}"},{"description":{"content":"<p>The end of the date range (inclusive) you want to run the report for in <code>yyyy-mm-dd</code> format. Defaults to the current date.</p>\n","type":"text/plain"},"key":"end","value":"{{end}}"},{"description":{"content":"<p>The dimension you want to include in the output. One of <code>accounts</code>, <code>services</code> or <code>instances</code> (or a combination of those as a comma separated list). Defaults to <code>accounts,services</code>. When <code>instances</code> is included, price and quantity adjustments and minimum commit are not reflected in the data.</p>\n","type":"text/plain"},"key":"dimension","value":""},{"description":{"content":"<p>One of <code>day</code>, <code>month</code> or <code>none</code>. Defaults to <code>day</code>.</p>\n","type":"text/plain"},"key":"timeline","value":""},{"description":{"content":"<p>The depth in the report definition you want to report on. Defaults to 1.</p>\n","type":"text/plain"},"key":"depth","value":""},{"description":{"content":"<p>Optionally specify a list of extra fields you want to output with the results. Possible fields are <code>account_key</code>, <code>account_name</code>, <code>service_key</code>, <code>service_description</code>, <code>servicecategory_name</code>, <code>start_date</code>, <code>end_date</code>, <code>adjustment_name</code> (or a combination of those as a comma separated list). The account and service fields are only available if their respective dimension is included in the request.</p>\n","type":"text/plain"},"key":"include","value":""},{"description":{"content":"<p>Optionally filter the output by the supplied field. Possible fields are <code>account_id</code>, <code>parent_account_id</code>, <code>service_id</code>, <code>servicecategory_id</code>, <code>instance</code>. This parameter can occur multiple times in a request to filter by multiple fields.</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>One of <code>json</code>, <code>csv</code> or <code>pdf/summary</code>. Default to <code>json</code>.</p>\n","type":"text/plain"},"key":"format","value":""},{"description":{"content":"<p>Specify <code>highest</code> to get raw precision, use configuration otherwise. Defaults to <code>configuration</code>.</p>\n","type":"text/plain"},"key":"precision","value":""},{"description":{"content":"<p>When set to <code>1</code> and format is <code>json</code>, results will be streamed with progress indicator in response body. When format is <code>csv</code>, results are always streamed without progress indicator, <code>pdf/ínvoice</code> is never streamed. Defaults to <code>1</code>.</p>\n","type":"text/plain"},"key":"progress","value":""},{"description":{"content":"<p>The CSV delimiter to use. Only applicable when <code>format</code> is set to <code>csv</code>. Possible values: <code>,</code>, <code>;</code>, <code>:</code>, <code>\\t</code>, <code>|</code>. Leave blank to use configuration.</p>\n","type":"text/plain"},"key":"csv_delimiter","value":""},{"description":{"content":"<p>The decimal separator to use. Only applicable when <code>format</code> is set to <code>csv</code>. Possible values: <code>,</code>, <code>.</code>. Leave blank to use configuration.</p>\n","type":"text/plain"},"key":"csv_decimal_separator","value":null},{"description":{"content":"<p>List of options for the pdf/summary format, in a comma seperated list. Possible options: <code>consolidated</code>, <code>accounts</code>, <code>services</code>, <code>instances_by_instance</code> and <code>instances_by_service</code>. Defaults to <code>services</code>.</p>\n","type":"text/plain"},"key":"summary_options","value":""}],"variable":[{"description":{"content":"<p>ID of report to run</p>\n","type":"text/plain"},"type":"any","value":"{{report_id}}","key":"report_id"}]}},"response":[{"id":"54f1413a-cb1e-4791-86b6-003ea0dc6f1c","name":"Run a report","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/v1/reports/1/run?start=20170101&end=20231231","host":["{{base_url}}"],"path":["v1","reports","1","run"],"query":[{"key":"start","value":"20170101","description":"The start of the date range (inclusive) you want to run the report for in `yyyy-mm-dd` format. Defaults to the current date."},{"key":"end","value":"20231231","description":"The end of the date range (inclusive) you want to run the report for in `yyyy-mm-dd` format. Defaults to the current date."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 Oct 2023 08:28:48 GMT"},{"key":"Date","value":"Mon, 09 Oct 2023 08:28:48 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X126a7fdd74fff7f092bd0d9414b05159"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X126a7fdd74fff7f092bd0d9414b05159"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-47VAq3vYoEQfUgzAPB5sphguIfMzipJB';style-src 'self' 'nonce-47VAq3vYoEQfUgzAPB5sphguIfMzipJB';font-src 'self' data:"},{"key":"Request-Id","value":"14a0cfad-632d-40d9-b57e-9d249b302f18"}],"cookie":[],"responseTime":null,"body":"{\n    \"report\": [\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"13.000000\",\n            \"total_quantity\": \"13.000000\",\n            \"unit_based_subtotal_charge\": \"32.50\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"32.50\",\n            \"total_charge\": \"32.50\",\n            \"total_cogs\": \"28.60\",\n            \"total_net\": \"3.90\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.50000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"1\",\n            \"service_id\": \"71\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"6.000000\",\n            \"total_quantity\": \"6.000000\",\n            \"unit_based_subtotal_charge\": \"7.20\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"7.20\",\n            \"total_charge\": \"7.20\",\n            \"total_cogs\": \"4.80\",\n            \"total_net\": \"2.40\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"1.20000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"1\",\n            \"service_id\": \"72\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"116.000000\",\n            \"total_quantity\": \"116.000000\",\n            \"unit_based_subtotal_charge\": \"1985.04\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"1985.04\",\n            \"total_charge\": \"1985.04\",\n            \"total_cogs\": \"1600.80\",\n            \"total_net\": \"384.24\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"17.11240000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"1\",\n            \"service_id\": \"73\",\n            \"servicecategory_id\": \"54\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"120.000000\",\n            \"total_quantity\": \"120.000000\",\n            \"unit_based_subtotal_charge\": \"240.04\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"240.04\",\n            \"total_charge\": \"240.04\",\n            \"total_cogs\": \"120.02\",\n            \"total_net\": \"120.01\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.00030000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"1\",\n            \"service_id\": \"74\",\n            \"servicecategory_id\": \"54\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"3.111100\",\n            \"total_quantity\": \"3.111100\",\n            \"unit_based_subtotal_charge\": \"7.78\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"7.78\",\n            \"total_charge\": \"7.78\",\n            \"total_cogs\": \"6.84\",\n            \"total_net\": \"0.93\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.50000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"2\",\n            \"service_id\": \"71\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"1.999900\",\n            \"total_quantity\": \"1.999900\",\n            \"unit_based_subtotal_charge\": \"2.40\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"2.40\",\n            \"total_charge\": \"2.40\",\n            \"total_cogs\": \"1.60\",\n            \"total_net\": \"0.80\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"1.20000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"2\",\n            \"service_id\": \"72\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"10.100000\",\n            \"total_quantity\": \"10.100000\",\n            \"unit_based_subtotal_charge\": \"14.81\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"14.81\",\n            \"total_charge\": \"14.81\",\n            \"total_cogs\": \"112.21\",\n            \"total_net\": \"-97.40\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"1.46612903\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170825\",\n            \"account_id\": \"2\",\n            \"service_id\": \"75\",\n            \"servicecategory_id\": \"55\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"13.000000\",\n            \"total_quantity\": \"13.000000\",\n            \"unit_based_subtotal_charge\": \"32.50\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"32.50\",\n            \"total_charge\": \"32.50\",\n            \"total_cogs\": \"28.60\",\n            \"total_net\": \"3.90\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.50000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170826\",\n            \"account_id\": \"1\",\n            \"service_id\": \"71\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"116.000000\",\n            \"total_quantity\": \"116.000000\",\n            \"unit_based_subtotal_charge\": \"1996.77\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"1996.77\",\n            \"total_charge\": \"1996.77\",\n            \"total_cogs\": \"1612.43\",\n            \"total_net\": \"384.33\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"17.21350000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170826\",\n            \"account_id\": \"1\",\n            \"service_id\": \"73\",\n            \"servicecategory_id\": \"54\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"119.798000\",\n            \"total_quantity\": \"119.798000\",\n            \"unit_based_subtotal_charge\": \"239.63\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"239.63\",\n            \"total_charge\": \"239.63\",\n            \"total_cogs\": \"119.82\",\n            \"total_net\": \"119.81\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.00030000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170826\",\n            \"account_id\": \"1\",\n            \"service_id\": \"74\",\n            \"servicecategory_id\": \"54\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"3.111100\",\n            \"total_quantity\": \"3.111100\",\n            \"unit_based_subtotal_charge\": \"7.78\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"7.78\",\n            \"total_charge\": \"7.78\",\n            \"total_cogs\": \"6.84\",\n            \"total_net\": \"0.93\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.50000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170826\",\n            \"account_id\": \"2\",\n            \"service_id\": \"71\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"24.000000\",\n            \"total_quantity\": \"24.000000\",\n            \"unit_based_subtotal_charge\": \"60.00\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"60.00\",\n            \"total_charge\": \"60.00\",\n            \"total_cogs\": \"52.80\",\n            \"total_net\": \"7.20\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.50000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170827\",\n            \"account_id\": \"1\",\n            \"service_id\": \"71\",\n            \"servicecategory_id\": \"53\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"116.000000\",\n            \"total_quantity\": \"116.000000\",\n            \"unit_based_subtotal_charge\": \"1985.04\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"1985.04\",\n            \"total_charge\": \"1985.04\",\n            \"total_cogs\": \"1600.80\",\n            \"total_net\": \"384.24\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"17.11240000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170827\",\n            \"account_id\": \"1\",\n            \"service_id\": \"73\",\n            \"servicecategory_id\": \"54\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"120.000000\",\n            \"total_quantity\": \"120.000000\",\n            \"unit_based_subtotal_charge\": \"240.04\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"240.04\",\n            \"total_charge\": \"240.04\",\n            \"total_cogs\": \"120.02\",\n            \"total_net\": \"120.01\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.00030000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170827\",\n            \"account_id\": \"1\",\n            \"service_id\": \"74\",\n            \"servicecategory_id\": \"54\"\n        },\n        {\n            \"rate_id\": null,\n            \"subtotal_quantity\": \"5.111100\",\n            \"total_quantity\": \"5.111100\",\n            \"unit_based_subtotal_charge\": \"12.78\",\n            \"interval_based_subtotal_charge\": \"0.00\",\n            \"subtotal_charge\": \"12.78\",\n            \"total_charge\": \"12.78\",\n            \"total_cogs\": \"11.24\",\n            \"total_net\": \"1.53\",\n            \"min_commit_delta_quantity\": \"0.000000\",\n            \"min_commit_delta_charge\": \"0.00\",\n            \"adjustments\": [],\n            \"tier_breakdown\": [],\n            \"avg_unit_based_rate\": \"2.50000000\",\n            \"avg_interval_based_rate\": \"0.00000000\",\n            \"breakdown\": null,\n            \"day\": \"20170827\",\n            \"account_id\": \"2\",\n            \"service_id\": \"71\",\n            \"servicecategory_id\": \"53\"\n        }\n    ]\n}"},{"id":"08103d30-423b-45d3-9b6b-ef14484dc608","name":"Run a report - format CSV","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/v1/reports/:report_id/run?start={{start}}&end={{end}}&format=csv","host":["{{base_url}}"],"path":["v1","reports",":report_id","run"],"query":[{"key":"start","value":"{{start}}","description":"The start of the date range (inclusive) you want to run the report for in `yyyy-mm-dd` format. Defaults to the current date."},{"key":"end","value":"{{end}}","description":"The end of the date range (inclusive) you want to run the report for in `yyyy-mm-dd` format. Defaults to the current date."},{"key":"dimension","value":"","description":"The dimension you want to include in the output. One of `accounts`, `services` or `instances` (or a combination of those as a comma separated list). Defaults to `accounts,services`. When `instances` is included, price and quantity adjustments and minimum commit are not reflected in the data.","disabled":true},{"key":"timeline","value":"","description":"One of `day`, `month` or `none`. Defaults to `day`.","disabled":true},{"key":"depth","value":"","description":"The depth in the report definition you want to report on. Defaults to 1.","disabled":true},{"key":"include","value":"","description":"Optionally specify a list of extra fields you want to output with the results. Possible fields are `account_key`, `account_name`, `service_key`, `service_description`, `servicecategory_name`, `start_date`, `end_date`, `adjustment_name` (or a combination of those as a comma separated list). The account and service fields are only available if their respective dimension is included in the request.","disabled":true},{"key":"filter[attribute]","value":null,"description":"Optionally filter the output by the supplied field. Possible fields are `account_id`, `parent_account_id`, `service_id`, `servicecategory_id`, `instance`. This parameter can occur multiple times in a request to filter by multiple fields.","disabled":true},{"key":"format","value":"csv","description":"One of `json`, `csv` or `pdf/summary`. Default to `json`."},{"key":"precision","value":"","description":"Specify `highest` to get raw precision, use configuration otherwise. Defaults to `configuration`.","disabled":true},{"key":"progress","value":"","description":"When set to `1` and format is `json`, results will be streamed with progress indicator in response body. When format is `csv`, results are always streamed without progress indicator, `pdf/ínvoice` is never streamed. Defaults to `1`.","disabled":true},{"key":"csv_delimiter","value":"","description":"The CSV delimiter to use. Only applicable when `format` is set to `csv`. Possible values: `,`, `;`, `:`, `\\t`, `|`. Leave blank to use configuration.","disabled":true},{"key":"csv_decimal_separator","value":null,"description":"The decimal separator to use. Only applicable when `format` is set to `csv`. Possible values: `,`, `.`. Leave blank to use configuration.","disabled":true},{"key":"summary_options","value":"","description":"List of options for the pdf/summary format, in a comma seperated list. Possible options: `consolidated`, `accounts`, `services`, `instances_by_instance` and `instances_by_service`. Defaults to `services`.","disabled":true}],"variable":[{"key":"report_id","value":"{{report_id}}","description":"ID of report to run"}]}},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 Oct 2023 08:33:03 GMT"},{"key":"Date","value":"Mon, 09 Oct 2023 08:33:03 GMT"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"text/csv; charset=UTF-8"},{"key":"X-Proximity-Cache","value":"miss"},{"key":"Content-Disposition","value":"attachment; filename=\"report-test_depth-reseller_range-20170101-20231231.csv\""},{"key":"Access-Control-Expose-Headers","value":"Content-Disposition"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X9ed54c08e6df6fb34aa3fe25e4a2f8c6"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X9ed54c08e6df6fb34aa3fe25e4a2f8c6"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-xBv56oZ62TI3FLqSdg4xOXyVs7gpRNOy';style-src 'self' 'nonce-xBv56oZ62TI3FLqSdg4xOXyVs7gpRNOy';font-src 'self' data:"},{"key":"Request-Id","value":"d28616c7-3d13-4588-bf06-921b77107d7a"}],"cookie":[],"responseTime":null,"body":"rate_id,subtotal_quantity,total_quantity,unit_based_subtotal_charge,interval_based_subtotal_charge,subtotal_charge,total_charge,total_cogs,total_net,min_commit_delta_quantity,min_commit_delta_charge,adjustments,tier_breakdown,avg_unit_based_rate,avg_interval_based_rate,breakdown,day,account_id,service_id,servicecategory_id\n,13.000000,13.000000,32.50,0.00,32.50,32.50,28.60,3.90,0.000000,0.00,,,2.50000000,0.00000000,,20170825,1,71,53\n,6.000000,6.000000,7.20,0.00,7.20,7.20,4.80,2.40,0.000000,0.00,,,1.20000000,0.00000000,,20170825,1,72,53\n,116.000000,116.000000,1985.04,0.00,1985.04,1985.04,1600.80,384.24,0.000000,0.00,,,17.11240000,0.00000000,,20170825,1,73,54\n,120.000000,120.000000,240.04,0.00,240.04,240.04,120.02,120.01,0.000000,0.00,,,2.00030000,0.00000000,,20170825,1,74,54\n,3.111100,3.111100,7.78,0.00,7.78,7.78,6.84,0.93,0.000000,0.00,,,2.50000000,0.00000000,,20170825,2,71,53\n,1.999900,1.999900,2.40,0.00,2.40,2.40,1.60,0.80,0.000000,0.00,,,1.20000000,0.00000000,,20170825,2,72,53\n,10.100000,10.100000,14.81,0.00,14.81,14.81,112.21,-97.40,0.000000,0.00,,,1.46612903,0.00000000,,20170825,2,75,55\n,13.000000,13.000000,32.50,0.00,32.50,32.50,28.60,3.90,0.000000,0.00,,,2.50000000,0.00000000,,20170826,1,71,53\n,116.000000,116.000000,1996.77,0.00,1996.77,1996.77,1612.43,384.33,0.000000,0.00,,,17.21350000,0.00000000,,20170826,1,73,54\n,119.798000,119.798000,239.63,0.00,239.63,239.63,119.82,119.81,0.000000,0.00,,,2.00030000,0.00000000,,20170826,1,74,54\n,3.111100,3.111100,7.78,0.00,7.78,7.78,6.84,0.93,0.000000,0.00,,,2.50000000,0.00000000,,20170826,2,71,53\n,24.000000,24.000000,60.00,0.00,60.00,60.00,52.80,7.20,0.000000,0.00,,,2.50000000,0.00000000,,20170827,1,71,53\n,116.000000,116.000000,1985.04,0.00,1985.04,1985.04,1600.80,384.24,0.000000,0.00,,,17.11240000,0.00000000,,20170827,1,73,54\n,120.000000,120.000000,240.04,0.00,240.04,240.04,120.02,120.01,0.000000,0.00,,,2.00030000,0.00000000,,20170827,1,74,54\n,5.111100,5.111100,12.78,0.00,12.78,12.78,11.24,1.53,0.000000,0.00,,,2.50000000,0.00000000,,20170827,2,71,53\n"}],"_postman_id":"91ce1789-2708-8c84-84f6-4691b9bbd408"},{"name":"Fetch report resources","event":[{"listen":"test","script":{"id":"3ec9c5d8-deb1-43ea-8ea2-d19782fd1390","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });","","// let response = pm.response.text();","","// for (let i of responseBody.split('\\n')) {","//     if (i[0] === '{') {","//         response = JSON.parse(i);","//     }","// }","","// pm.test(\"Response contains report\", function () {","//     pm.expect(response.report).to.be.an('array');","//     pm.expect(response.report[0]).to.be.an('object');","//     pm.expect(response.report[0].meta).to.be.an('object');","//     pm.expect(response.report[0].error).to.be.a('boolean');","//     pm.expect(response.report[0].error).to.eql(false);","//     pm.expect(response.report[0].data).to.be.an('array');","// });"],"type":"text/javascript"}}],"id":"7427e8bf-44ed-47f0-bf48-f1813ce5c905","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/reports/:report_id/resources?start={{start}}&end={{end}}&dimension=&depth=&filter[attribute]","description":"<p>⚠️ This endpoint is currently in alpha and may change at any time. Please don't use in production.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>service_ids</td>\n<td><em>string[]</em></td>\n<td>Key for the applicable service, only when <code>services</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>servicecategory_ids</td>\n<td><em>string[]</em></td>\n<td>Key for the applicable service category, only when <code>services</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>account_ids</td>\n<td><em>string[]</em></td>\n<td>Key for the applicable account, only when <code>accounts</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n<tr>\n<td>instance_values</td>\n<td><em>string[]</em></td>\n<td>Unique identifier for the applicable instance, only when <code>instances</code> is included in the <code>dimension</code> parameter</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","reports",":report_id","resources"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The start of the date range (inclusive) you want to run the report for in <code>yyyy-mm-dd</code> format. Defaults to the current date.</p>\n","type":"text/plain"},"key":"start","value":"{{start}}"},{"description":{"content":"<p>The end of the date range (inclusive) you want to run the report for in <code>yyyy-mm-dd</code> format. Defaults to the current date.</p>\n","type":"text/plain"},"key":"end","value":"{{end}}"},{"description":{"content":"<p>The dimension you want to include in the output. One of <code>accounts</code>, <code>services</code> or <code>instances</code> (or a combination of those as a comma separated list). Defaults to <code>accounts,services</code>.</p>\n","type":"text/plain"},"key":"dimension","value":""},{"description":{"content":"<p>The depth in the report definition you want to report on. Defaults to 1.</p>\n","type":"text/plain"},"key":"depth","value":""},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute. Possible fields are <code>account_id</code>, <code>parent_account_id</code>, <code>service_id</code>, <code>servicecategory_id</code>, <code>instance</code>. This parameter can occur multiple times in a request to filter by multiple fields.</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null}],"variable":[{"description":{"content":"<p>Report to fetch resources on</p>\n","type":"text/plain"},"type":"string","value":"{{report_id}}","key":"report_id"}]}},"response":[{"id":"957c4efc-47be-4be1-b7ae-2bb63ea97ef4","name":"Fetch report resources","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/reports/:report_id/resources?start={{start}}&end={{end}}&dimension=&depth=&filter[attribute]","host":["{{base_url}}"],"path":["v1","reports",":report_id","resources"],"query":[{"key":"start","value":"{{start}}","description":"The start of the date range (inclusive) you want to run the report for in `yyyy-mm-dd` format. Defaults to the current date."},{"key":"end","value":"{{end}}","description":"The end of the date range (inclusive) you want to run the report for in `yyyy-mm-dd` format. Defaults to the current date."},{"key":"dimension","value":"","description":"The dimension you want to include in the output. One of `accounts`, `services` or `instances` (or a combination of those as a comma separated list). Defaults to `accounts,services`."},{"key":"depth","value":"","description":"The depth in the report definition you want to report on. Defaults to 1."},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute. Possible fields are `account_id`, `parent_account_id`, `service_id`, `servicecategory_id`, `instance`. This parameter can occur multiple times in a request to filter by multiple fields."}],"variable":[{"key":"report_id","value":"{{report_id}}","type":"string","description":"Report to fetch resources on"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 Oct 2023 08:31:51 GMT"},{"key":"Date","value":"Mon, 09 Oct 2023 08:31:51 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xabb4d507d53c1e97b3dc3916a7d269de"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xabb4d507d53c1e97b3dc3916a7d269de"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-IORts05ldYH603cbiJCTikss9hK7rq5C';style-src 'self' 'nonce-IORts05ldYH603cbiJCTikss9hK7rq5C';font-src 'self' data:"},{"key":"Request-Id","value":"2da0e8e7-9a52-4f6b-87a1-253f22ea0223"}],"cookie":[],"responseTime":null,"body":"{\n    \"resources\": {\n        \"account_ids\": [\n            \"1\",\n            \"2\"\n        ],\n        \"service_ids\": [\n            \"71\",\n            \"72\",\n            \"73\",\n            \"74\",\n            \"75\"\n        ],\n        \"servicecategory_ids\": [\n            \"53\",\n            \"54\",\n            \"55\"\n        ]\n    }\n}"}],"_postman_id":"7427e8bf-44ed-47f0-bf48-f1813ce5c905"},{"name":"Delete a report definition","event":[{"listen":"test","script":{"id":"726795e6-603a-4c76-b26e-daa9b1104425","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET report_id');","pm.environment.unset(\"report_id\");"],"type":"text/javascript"}}],"id":"361ac871-7a68-e539-eb1c-8b3bf1eeaa3e","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/reports/:report_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","reports",":report_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{report_id}}","key":"report_id"}]}},"response":[{"id":"95dd2652-b07f-4058-b748-dacfd4c53c76","name":"Delete a report definition","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/reports/:report_id","host":["{{base_url}}"],"path":["v1","reports",":report_id"],"variable":[{"key":"report_id","value":"{{report_id}}"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 16:58:47 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 16:58:47 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xa750375a3d42705bf30ac7841176a88c"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-CwFMA0e3udnEBkZWcEFOtVHR0pyZmkiy';style-src 'self' 'nonce-CwFMA0e3udnEBkZWcEFOtVHR0pyZmkiy';font-src 'self' data:"},{"key":"Request-Id","value":"7e5cf6f9-e388-4377-aa04-457a9568bf0e"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"361ac871-7a68-e539-eb1c-8b3bf1eeaa3e"}],"id":"f701b5e8-5cca-8e89-5291-cb25c71de9ff","description":"<p>The report object contains the definition of how to generate a report, and once the report has run, the report data itself.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#report\">https://docs.exivity.com/architecture%20concepts/glossary/#report</a></p>\n<h4 id=\"the-report-object\"><strong>The report object</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>Unique name, max 255 chars</td>\n</tr>\n<tr>\n<td>dset</td>\n<td><em>string</em></td>\n<td>Dataset name, max 255 chars</td>\n</tr>\n<tr>\n<td>created</td>\n<td><em>string</em></td>\n<td>Date created (UTC)</td>\n</tr>\n<tr>\n<td>last_updated</td>\n<td><em>string</em></td>\n<td>Date last updated (UTC)</td>\n</tr>\n<tr>\n<td>lvl1_key_col  <br />lvl2_key_col  <br />lvl3_key_col  <br />lvl4_key_col  <br />lvl5_key_col</td>\n<td><em>string</em></td>\n<td>Key column, max 255 chars</td>\n</tr>\n<tr>\n<td>lvl1_name_col  <br />lvl2_name_col  <br />lvl3_name_col  <br />lvl4_name_col  <br />lvl5_name_col</td>\n<td><em>string</em></td>\n<td>Name column, max 255 chars</td>\n</tr>\n<tr>\n<td>lvl1_label  <br />lvl2_label  <br />lvl3_label  <br />lvl4_label  <br />lvl5_label</td>\n<td><em>string</em></td>\n<td>Label, max 255 chars</td>\n</tr>\n<tr>\n<td>lvl1_metadata_definition_id  <br />lvl2_metadata_definition_id  <br />lvl3_metadata_definition_id  <br />lvl4_metadata_definition_id  <br />lvl5_metadata_definition_id</td>\n<td><em>int</em></td>\n<td>Metadata ID</td>\n</tr>\n<tr>\n<td>depth</td>\n<td><em>int</em></td>\n<td></td>\n</tr>\n<tr>\n<td>data_status</td>\n<td><em>array of objects</em></td>\n<td>See data_status object below</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"the-data_status-object\"><strong>The data_status object</strong></h4>\n<p>If a report has data, it will be contained inside data_status objects.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>first_date</td>\n<td><em>date</em> (ISO string)</td>\n<td>The first date of the report data</td>\n</tr>\n<tr>\n<td>last_date</td>\n<td><em>date</em> (ISO string)</td>\n<td>The last date of the report data</td>\n</tr>\n<tr>\n<td>missing</td>\n<td><em>int</em></td>\n<td>The total number of days with missing data</td>\n</tr>\n<tr>\n<td>errors</td>\n<td><em>int</em></td>\n<td>The total number of days with errors</td>\n</tr>\n<tr>\n<td>status</td>\n<td><em>array of objects</em></td>\n<td>See the status object below</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"the-status-object\"><strong>The status object</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>date</td>\n<td><em>date</em> (ISO string)</td>\n<td>Data date</td>\n</tr>\n<tr>\n<td>missing</td>\n<td><em>bool</em></td>\n<td>True if this day has data</td>\n</tr>\n<tr>\n<td>column_status</td>\n<td><em>string</em></td>\n<td>Possible values:  <br />- unknown  <br />- invalid  <br />- ok  <br />- missing</td>\n</tr>\n<tr>\n<td>account_sync</td>\n<td><em>bool</em></td>\n<td>True if this day has the accounts synchronized (part of preparation)</td>\n</tr>\n<tr>\n<td>prepared</td>\n<td><em>bool</em></td>\n<td>True if this day is fully prepared</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"0ef6832d-1f68-4dbc-8221-3002e881f630","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"3e29ddfd-bfa4-44a9-bb7a-d27dd726cbc3","type":"text/javascript","exec":[""]}}],"_postman_id":"f701b5e8-5cca-8e89-5291-cb25c71de9ff"}],"id":"d62f8c85-68fd-4fad-9596-08fb1a2cd993","auth":{"type":"noauth","isInherited":false},"_postman_id":"d62f8c85-68fd-4fad-9596-08fb1a2cd993","description":""},{"name":"Services","item":[{"name":"/servicecategories","item":[{"name":"Retrieve a list of service categories","event":[{"listen":"test","script":{"id":"c86fdcad-2575-487e-a191-17f2664a5aac","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});","","pm.environment.set(\"servicecategory_id\", response.data[0].id);","console.log('SET servicecategory_id: ' + pm.environment.get(\"servicecategory_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"9d403cd9-fe2e-435d-9927-fd81f5465766","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r"],"type":"text/javascript"}}],"id":"5b64bfe6-3f11-d1dc-8ce0-99e9381fba23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/servicecategories?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","servicecategories"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>services</code>, <code>adjustments</code>, <code>budgetitems</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"b6532fbe-146b-4443-b67a-c58a122b2ab2","name":"Retrieve a list of service categories","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/servicecategories?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","servicecategories"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `services`, `adjustments`, `budgetitems`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 May 2022 13:47:02 GMT"},{"key":"Date","value":"Mon, 09 May 2022 13:47:02 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xda57a555dfe588a6a63b8be096de75ad"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-SxUOJsUwdLUGGdVvbN44sVlp3p6YyhsB';style-src 'self' 'nonce-SxUOJsUwdLUGGdVvbN44sVlp3p6YyhsB';font-src 'self' data:"},{"key":"Request-Id","value":"fc2ea5f8-abe5-4824-942a-e0dd74ab2a8a"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"servicecategory\",\n            \"id\": \"241\",\n            \"attributes\": {\n                \"name\": \"Web services\"\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/servicecategories/241\"\n            },\n            \"relationships\": {\n                \"services\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/servicecategories/241/relationships/services\",\n                        \"related\": \"http://localhost:8012/v1/servicecategories/241/services\"\n                    }\n                },\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/servicecategories/241/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/servicecategories/241/adjustments\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/servicecategories/241/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/servicecategories/241/budgetitems\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"count\": 1,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/servicecategories?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/servicecategories?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/servicecategories?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"5b64bfe6-3f11-d1dc-8ce0-99e9381fba23"},{"name":"Add a new service category","event":[{"listen":"test","script":{"id":"c86fdcad-2575-487e-a191-17f2664a5aac","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('servicecategory');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.be.an('string');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"servicecategory_id\", response.data.id);","console.log('SET servicecategory_id: ' + pm.environment.get(\"servicecategory_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"5e5fa6b0-d7ef-4011-8856-891c6610a647","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"6a682105-fc6b-400f-b2b8-3b16fe626891","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"servicecategory\",\n        \"attributes\": {\n            \"name\": \"Test service category - 100\"\n        }\n    }\n}"},"url":"{{base_url}}/v1/servicecategories","urlObject":{"path":["v1","servicecategories"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1b28bdbc-83d2-4200-be4d-fdc2d0905c75","name":"Add a new service category","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"servicecategory\",\n        \"attributes\": {\n            \"name\": \"Test service category\"\n        }\n    }\n}"},"url":"http://localhost:8012/v1/servicecategories"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 10:21:06 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 10:21:06 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/ServiceCategory/ServiceCategorys"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X61f0fed58b37d18141732377f72fd23d"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-yfL5bhiLc2sbsbVMAJ4GfWV3idtu3QtY';style-src 'self' 'nonce-yfL5bhiLc2sbsbVMAJ4GfWV3idtu3QtY';font-src 'self' data:"},{"key":"Request-Id","value":"ffa033f8-a617-44b7-b927-ed63832d8d0b"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"servicecategory\",\n        \"id\": \"6\",\n        \"attributes\": {\n            \"name\": \"Test service category\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/servicecategories/6\"\n        },\n        \"relationships\": {\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicecategories/6/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/servicecategories/6/services\"\n                }\n            },\n            \"adjustments\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicecategories/6/relationships/adjustments\",\n                    \"related\": \"http://localhost:8012/v1/servicecategories/6/adjustments\"\n                }\n            },\n            \"budgetitems\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicecategories/6/relationships/budgetitems\",\n                    \"related\": \"http://localhost:8012/v1/servicecategories/6/budgetitems\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"6a682105-fc6b-400f-b2b8-3b16fe626891"},{"name":"Retrieve a service category","event":[{"listen":"test","script":{"id":"bd868933-0a84-4845-a464-64b70a1d5e7b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('servicecategory');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.be.a('string')","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"7cc9234f-b5fa-4214-871c-f7d8440a46c7","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"e3687a0f-502e-4675-bdde-dd86aad7cb2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/servicecategories/:servicecategory_id?include","urlObject":{"path":["v1","servicecategories",":servicecategory_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>services</code>, <code>adjustments</code>, <code>budgetitems</code>.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[{"id":"5a218be4-5489-4b53-87bf-a6f655eb4919","type":"string","value":"{{servicecategory_id}}","key":"servicecategory_id"}]}},"response":[{"id":"9ff5edec-9c36-4b8f-b410-0c15a1a39f58","name":"Retrieve a service category","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/servicecategories/:servicecategory_id","host":["{{base_url}}"],"path":["v1","servicecategories",":servicecategory_id"],"variable":[{"id":"5a218be4-5489-4b53-87bf-a6f655eb4919","key":"servicecategory_id","value":"{{servicecategory_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 16:36:14 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 16:36:14 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xe25617240099426c0ce74d47954a2309"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-I7YfiW1sNCbrXwVyW359SFYQ64zI4N03';style-src 'self' 'nonce-I7YfiW1sNCbrXwVyW359SFYQ64zI4N03';font-src 'self' data:"},{"key":"Request-Id","value":"f163278b-4f0f-4b68-beb8-65f5079d1b97"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"servicecategory\",\n        \"id\": \"4\",\n        \"attributes\": {\n            \"name\": \"Test serice category - 123\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/servicecategories/4\"\n        },\n        \"relationships\": {\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicecategories/4/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/servicecategories/4/services\"\n                }\n            },\n            \"adjustments\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicecategories/4/relationships/adjustments\",\n                    \"related\": \"http://localhost:8012/v1/servicecategories/4/adjustments\"\n                }\n            },\n            \"budgetitems\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicecategories/4/relationships/budgetitems\",\n                    \"related\": \"http://localhost:8012/v1/servicecategories/4/budgetitems\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"e3687a0f-502e-4675-bdde-dd86aad7cb2b"},{"name":"Update a service category","event":[{"listen":"test","script":{"id":"358cbac9-b630-4f2e-8bbe-e6aab4bc14d0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('servicecategory');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"servicecategory_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.be.an('string');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"9aec818d-4ca5-4e41-801c-5e8365767155","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"61fe337c-4892-4070-abd1-c00cd625547a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n        \"type\":\"servicecategory\",\r\n        \"id\": \"{{servicecategory_id}}\",\r\n        \"attributes\": {\r\n            \"name\": \"Test serice category - 5\"\r\n        }\r\n    }\r\n}\r\n"},"url":"{{base_url}}/v1/servicecategories/:servicecategory_id","urlObject":{"path":["v1","servicecategories",":servicecategory_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"a8d1bdc4-fe11-458c-91e0-6b1d15e752a8","type":"string","value":"{{servicecategory_id}}","key":"servicecategory_id"}]}},"response":[],"_postman_id":"61fe337c-4892-4070-abd1-c00cd625547a"},{"name":"Delete a service category","event":[{"listen":"test","script":{"id":"d039b6ae-a001-46e8-98d9-91d53c11181d","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET servicecategory_id');","pm.environment.unset(\"servicecategory_id\");",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"d11a4a84-d32e-4a6a-b693-130405771e9b","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"f180a2b5-ca39-46c5-9abb-9a8e13a3f410","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/servicecategories/:servicecategory_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","servicecategories",":servicecategory_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"04a241c7-e541-45da-a792-5821bbb68dca","type":"string","value":"{{servicecategory_id}}","key":"servicecategory_id"}]}},"response":[{"id":"deed5c47-9727-4d17-8b45-64ca85689472","name":"Delete a service category","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/servicecategories/:servicecategory_id","host":["{{base_url}}"],"path":["v1","servicecategories",":servicecategory_id"],"variable":[{"id":"04a241c7-e541-45da-a792-5821bbb68dca","key":"servicecategory_id","value":"{{servicecategory_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 31 Jan 2022 16:55:10 GMT"},{"key":"Date","value":"Mon, 31 Jan 2022 16:55:10 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xf69f4d73f8317762539990f3557cb6f9"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-0hRJUPQqXQe2hCKiy3Eva3PdE2Z8mNBs';style-src 'self' 'nonce-0hRJUPQqXQe2hCKiy3Eva3PdE2Z8mNBs';font-src 'self' data:"},{"key":"Request-Id","value":"9826747f-db8a-41b4-9118-5879c4e7a091"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"f180a2b5-ca39-46c5-9abb-9a8e13a3f410"}],"id":"7220b5bd-06ad-5ebb-2d4e-2d60833f283a","description":"<p>Categories services can be grouped under. A category can contain multiple services, but each service can only be in one category.</p>\n<p>Examples of categories: <code>Software</code>, <code>Web services</code></p>\n<h4 id=\"the-service-category-object\">The Service Category Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝﻿ editable</td>\n<td>Required, unique name for service category. Max 255 chars.</td>\n</tr>\n</tbody>\n</table>\n</div><p>The following resources can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>services</td>\n<td>0:n</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>adjustments</td>\n<td>n:m</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>budgetitems</td>\n<td>n:m</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"5c63ff40-2109-4a78-ae78-ac7b456f4d3e","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0ba3c502-d4f8-4997-b663-d2ac772d4777","type":"text/javascript","exec":[""]}}],"_postman_id":"7220b5bd-06ad-5ebb-2d4e-2d60833f283a"},{"name":"/services","item":[{"name":"Retrieve a list of services","event":[{"listen":"test","script":{"id":"b6d898f6-a5c3-44d2-a63f-8e6dcf40f387","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","pm.test(\"Content-Type is present\", function () {","    pm.response.to.have.header(\"Content-Type\");","});","","// Check response","const response = pm.response.json();","console.log(response);","pm.test(\"Response contains data\", function () {","    pm.response.to.be.json;","    pm.expect(response.data).to.be.an('array');","});","","// Check first service","var service = response.data[0];","pm.test(\"Service type is correct\", function () {","    pm.expect(service.type).to.eql('service');","});","pm.test(\"Service ID is set\", function () {","    pm.expect(service.id).to.not.be.undefined;","});","pm.test(\"Service attributes are correct\", function () {","    pm.expect(service.attributes).to.be.an('object');","    pm.expect(service.attributes).to.have.property(\"key\");","    pm.expect(service.attributes).to.have.property(\"description\");","    pm.expect(service.attributes).to.have.property(\"unit_label\");","    pm.expect(service.attributes).to.have.property(\"dset\");","    pm.expect(service.attributes).to.have.property(\"type\");","    pm.expect(service.attributes).to.have.property(\"usage_col\");","    pm.expect(service.attributes).to.have.property(\"consumption_col\");","    pm.expect(service.attributes).to.have.property(\"instance_col\");","    pm.expect(service.attributes).to.have.property(\"interval\");","    pm.expect(service.attributes).to.have.property(\"charge_type\");","    pm.expect(service.attributes).to.have.property(\"cogs_type\");","    pm.expect(service.attributes).to.have.property(\"proration_type\");","    pm.expect(service.attributes).to.have.property(\"created_at\");","    pm.expect(service.attributes).to.have.property(\"updated_at\");","    pm.expect(service.attributes).to.have.property(\"seen_at\");","    pm.expect(service.attributes).to.have.property(\"orphan\");","    pm.expect(service.attributes).to.have.property(\"charge_model\");","","});","","pm.environment.set('first_service_id', response.data[0].id);","console.log('SET first_service_id: ' + pm.environment.get(\"first_service_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"5184324e-8829-4ffc-b8c2-8386ced1613b","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"c78ac4f1-c9f3-ac01-c4b5-4247e5e7fc8f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/services?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","services"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>servicecategory</code>, <code>rates</code>, <code>adjustments</code>, <code>dset</code>, <code>metadata</code>, <code>budgetitems</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"76f84266-1086-418d-97fb-157d7bebce91","name":"Retrieve a list of services","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/services?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","services"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `servicecategory`, `rates`, `adjustments`, `dset`, `metadata`, `budgetitems`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Nov 2022 12:57:45 GMT"},{"key":"Date","value":"Tue, 01 Nov 2022 12:57:44 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xd34ed5c47054593f3808eb82d200be61"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-9lvsVGOyBxQEW0leF2jOcWyDIfzcr6NY';style-src 'self' 'nonce-9lvsVGOyBxQEW0leF2jOcWyDIfzcr6NY';font-src 'self' data:"},{"key":"Request-Id","value":"08a5e570-d0ac-4e42-8262-339a89336239"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"service\",\n            \"id\": \"15\",\n            \"attributes\": {\n                \"key\": \"CRM Enterprise\",\n                \"description\": \"License for CRM Enterprise\",\n                \"unit_label\": \"Licenses\",\n                \"dset\": \"test.usage\",\n                \"type\": \"service_name_in_data\",\n                \"usage_col\": \"service_name\",\n                \"consumption_col\": \"quantity\",\n                \"instance_col\": \"UniqueID\",\n                \"interval\": \"day\",\n                \"cogs_type\": \"automatic_per_unit\",\n                \"proration_type\": \"none\",\n                \"charge_model\": null,\n                \"charge_model_specific_day\": null,\n                \"created_at\": \"1970-08-23T00:58:21Z\",\n                \"updated_at\": \"2022-11-01T10:00:47Z\",\n                \"seen_at\": \"(not supported yet)\",\n                \"charge_type\": \"automatic_per_unit\",\n                \"orphan\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/services/15\"\n            },\n            \"relationships\": {\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/services/15/adjustments\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/services/15/dset\"\n                    }\n                },\n                \"dataset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/dataset\",\n                        \"related\": \"http://localhost:8012/v1/services/15/dataset\"\n                    }\n                },\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/services/15/metadata\"\n                    }\n                },\n                \"servicecategory\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/servicecategory\",\n                        \"related\": \"http://localhost:8012/v1/services/15/servicecategory\"\n                    }\n                },\n                \"rates\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/rates\",\n                        \"related\": \"http://localhost:8012/v1/services/15/rates\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/15/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/services/15/budgetitems\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"service\",\n            \"id\": \"16\",\n            \"attributes\": {\n                \"key\": \"MS Office Pro\",\n                \"description\": \"Microsoft Office Professional\",\n                \"unit_label\": \"Licenses\",\n                \"dset\": \"test.usage\",\n                \"type\": \"service_name_in_data\",\n                \"usage_col\": \"service_name\",\n                \"consumption_col\": \"quantity\",\n                \"instance_col\": \"UniqueID\",\n                \"interval\": \"month\",\n                \"cogs_type\": \"automatic_per_unit\",\n                \"proration_type\": \"none\",\n                \"charge_model\": \"peak\",\n                \"charge_model_specific_day\": null,\n                \"created_at\": \"1970-08-23T00:58:21Z\",\n                \"updated_at\": \"2022-11-01T10:00:47Z\",\n                \"seen_at\": \"(not supported yet)\",\n                \"charge_type\": \"automatic_per_unit\",\n                \"orphan\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/services/16\"\n            },\n            \"relationships\": {\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/services/16/adjustments\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/services/16/dset\"\n                    }\n                },\n                \"dataset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/dataset\",\n                        \"related\": \"http://localhost:8012/v1/services/16/dataset\"\n                    }\n                },\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/services/16/metadata\"\n                    }\n                },\n                \"servicecategory\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/servicecategory\",\n                        \"related\": \"http://localhost:8012/v1/services/16/servicecategory\"\n                    }\n                },\n                \"rates\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/rates\",\n                        \"related\": \"http://localhost:8012/v1/services/16/rates\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/16/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/services/16/budgetitems\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"service\",\n            \"id\": \"17\",\n            \"attributes\": {\n                \"key\": \"VM Large W0\",\n                \"description\": \"W0pping Large VM\",\n                \"unit_label\": \"VM's\",\n                \"dset\": \"test.usage\",\n                \"type\": \"service_name_in_data\",\n                \"usage_col\": \"service_name\",\n                \"consumption_col\": \"quantity\",\n                \"instance_col\": \"UniqueID\",\n                \"interval\": \"individually\",\n                \"cogs_type\": \"automatic_per_unit\",\n                \"proration_type\": \"none\",\n                \"charge_model\": null,\n                \"charge_model_specific_day\": null,\n                \"created_at\": \"1970-08-23T00:58:21Z\",\n                \"updated_at\": \"2022-11-01T10:00:47Z\",\n                \"seen_at\": \"(not supported yet)\",\n                \"charge_type\": \"automatic_per_unit\",\n                \"orphan\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/services/17\"\n            },\n            \"relationships\": {\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/services/17/adjustments\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/services/17/dset\"\n                    }\n                },\n                \"dataset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/dataset\",\n                        \"related\": \"http://localhost:8012/v1/services/17/dataset\"\n                    }\n                },\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/services/17/metadata\"\n                    }\n                },\n                \"servicecategory\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/servicecategory\",\n                        \"related\": \"http://localhost:8012/v1/services/17/servicecategory\"\n                    }\n                },\n                \"rates\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/rates\",\n                        \"related\": \"http://localhost:8012/v1/services/17/rates\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/17/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/services/17/budgetitems\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"service\",\n            \"id\": \"18\",\n            \"attributes\": {\n                \"key\": \"VM Small T1\",\n                \"description\": \"Tiny Small VM\",\n                \"unit_label\": \"VM's\",\n                \"dset\": \"test.usage\",\n                \"type\": \"service_name_in_data\",\n                \"usage_col\": \"service_name\",\n                \"consumption_col\": \"quantity\",\n                \"instance_col\": \"UniqueID\",\n                \"interval\": \"individually\",\n                \"cogs_type\": \"automatic_per_unit\",\n                \"proration_type\": \"none\",\n                \"charge_model\": null,\n                \"charge_model_specific_day\": null,\n                \"created_at\": \"1970-08-23T00:58:21Z\",\n                \"updated_at\": \"2022-11-01T10:00:47Z\",\n                \"seen_at\": \"(not supported yet)\",\n                \"charge_type\": \"automatic_per_unit\",\n                \"orphan\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/services/18\"\n            },\n            \"relationships\": {\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/services/18/adjustments\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/services/18/dset\"\n                    }\n                },\n                \"dataset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/dataset\",\n                        \"related\": \"http://localhost:8012/v1/services/18/dataset\"\n                    }\n                },\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/services/18/metadata\"\n                    }\n                },\n                \"servicecategory\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/servicecategory\",\n                        \"related\": \"http://localhost:8012/v1/services/18/servicecategory\"\n                    }\n                },\n                \"rates\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/rates\",\n                        \"related\": \"http://localhost:8012/v1/services/18/rates\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/18/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/services/18/budgetitems\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"service\",\n            \"id\": \"19\",\n            \"attributes\": {\n                \"key\": \"Website Std.\",\n                \"description\": \"Standard Website Domain\",\n                \"unit_label\": \"Websites\",\n                \"dset\": \"test.usage\",\n                \"type\": \"service_name_in_data\",\n                \"usage_col\": \"service_name\",\n                \"consumption_col\": \"quantity\",\n                \"instance_col\": \"UniqueID\",\n                \"interval\": \"month\",\n                \"cogs_type\": \"automatic_per_unit\",\n                \"proration_type\": \"full\",\n                \"charge_model\": \"peak\",\n                \"charge_model_specific_day\": null,\n                \"created_at\": \"1970-08-23T00:58:21Z\",\n                \"updated_at\": \"2022-11-01T10:00:47Z\",\n                \"seen_at\": \"(not supported yet)\",\n                \"charge_type\": \"automatic_per_unit\",\n                \"orphan\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/services/19\"\n            },\n            \"relationships\": {\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/services/19/adjustments\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/services/19/dset\"\n                    }\n                },\n                \"dataset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/dataset\",\n                        \"related\": \"http://localhost:8012/v1/services/19/dataset\"\n                    }\n                },\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/services/19/metadata\"\n                    }\n                },\n                \"servicecategory\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/servicecategory\",\n                        \"related\": \"http://localhost:8012/v1/services/19/servicecategory\"\n                    }\n                },\n                \"rates\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/rates\",\n                        \"related\": \"http://localhost:8012/v1/services/19/rates\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/19/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/services/19/budgetitems\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"service\",\n            \"id\": \"20\",\n            \"attributes\": {\n                \"key\": \"test  - 134\",\n                \"description\": \"test service\",\n                \"unit_label\": \"hours\",\n                \"dset\": \"test.usage\",\n                \"type\": \"service_name_in_header\",\n                \"usage_col\": \"unique_key\",\n                \"consumption_col\": \"quantity\",\n                \"instance_col\": \"hostname\",\n                \"interval\": \"month\",\n                \"cogs_type\": \"none\",\n                \"proration_type\": \"full\",\n                \"charge_model\": \"peak\",\n                \"charge_model_specific_day\": null,\n                \"created_at\": \"1970-08-23T00:58:21Z\",\n                \"updated_at\": \"2022-11-01T12:57:19Z\",\n                \"seen_at\": \"(not supported yet)\",\n                \"charge_type\": \"manual_per_unit\",\n                \"orphan\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/services/20\"\n            },\n            \"relationships\": {\n                \"adjustments\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/adjustments\",\n                        \"related\": \"http://localhost:8012/v1/services/20/adjustments\"\n                    }\n                },\n                \"dset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/dset\",\n                        \"related\": \"http://localhost:8012/v1/services/20/dset\"\n                    }\n                },\n                \"dataset\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/dataset\",\n                        \"related\": \"http://localhost:8012/v1/services/20/dataset\"\n                    }\n                },\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/services/20/metadata\"\n                    }\n                },\n                \"servicecategory\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/servicecategory\",\n                        \"related\": \"http://localhost:8012/v1/services/20/servicecategory\"\n                    }\n                },\n                \"rates\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/rates\",\n                        \"related\": \"http://localhost:8012/v1/services/20/rates\"\n                    }\n                },\n                \"budgetitems\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/services/20/relationships/budgetitems\",\n                        \"related\": \"http://localhost:8012/v1/services/20/budgetitems\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 6,\n            \"count\": 6,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/services?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/services?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/services?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"c78ac4f1-c9f3-ac01-c4b5-4247e5e7fc8f"},{"name":"Add a new service","event":[{"listen":"test","script":{"id":"b7f17b37-dd6f-4163-94a9-8bafae73f956","exec":["console.log('GET servicecategory_id: ' + pm.environment.get(\"servicecategory_id\"));","","pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","// Check response","const response = pm.response.json();","console.log(response);","","console.log(response);","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","});","","// Check service","pm.test(\"Service type is correct\", function () {","    pm.expect(response.data.type).to.eql('service');","});","pm.test(\"Service ID is set\", function () {","    pm.expect(response.data.id).to.not.be.undefined;","});","pm.test(\"Service attributes are correct\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    ","    pm.expect(response.data.attributes).to.have.property(\"key\");","    pm.expect(response.data.attributes).to.have.property(\"description\");","    pm.expect(response.data.attributes).to.have.property(\"unit_label\");","    pm.expect(response.data.attributes).to.have.property(\"dset\");","    pm.expect(response.data.attributes).to.have.property(\"type\");","    pm.expect(response.data.attributes).to.have.property(\"usage_col\");","    pm.expect(response.data.attributes).to.have.property(\"consumption_col\");","    pm.expect(response.data.attributes).to.have.property(\"instance_col\");","    pm.expect(response.data.attributes).to.have.property(\"interval\");","    pm.expect(response.data.attributes).to.have.property(\"charge_type\");","    pm.expect(response.data.attributes).to.have.property(\"cogs_type\");","    pm.expect(response.data.attributes).to.have.property(\"proration_type\");","    pm.expect(response.data.attributes).to.have.property(\"created_at\");","    pm.expect(response.data.attributes).to.have.property(\"updated_at\");","    pm.expect(response.data.attributes).to.have.property(\"seen_at\");","    pm.expect(response.data.attributes).to.have.property(\"orphan\");","    pm.expect(response.data.attributes).to.have.property(\"charge_model\");","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","","pm.environment.set(\"service_id\", response.data.id);","console.log('SET service_id: ' + pm.environment.get(\"service_id\"));","pm.environment.set(\"service_key\", response.data.attributes.key);","console.log('SET service_key: ' + pm.environment.get(\"service_key\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"e4d73eca-3269-4f9b-a931-eb1ed52470d0","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireServiceCategory)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r"],"type":"text/javascript"}}],"id":"759bfc3e-f514-4410-aa94-806ec0a34da2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"service\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"key\": \"test  - 946\",\r\n\t\t\t\"description\": \"test service\",\r\n\t\t\t\"unit_label\": \"hours\",\r\n\t\t\t\"dset\": \"{{dset_id}}\",\r\n\t\t\t\"type\": \"service_name_in_header\",\r\n\t\t\t\"usage_col\": \"unique_key\",\r\n\t\t\t\"consumption_col\": \"quantity\",\r\n\t\t\t\"instance_col\": \"hostname\",\r\n\t\t\t\"interval\": \"month\",\r\n\t\t\t\"charge_type\": \"manual_per_unit\",\r\n\t\t\t\"cogs_type\": \"none\",\r\n\t\t\t\"proration_type\": \"full\",\r\n\t\t\t\"charge_model\": \"peak\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"servicecategory\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"servicecategory\",\r\n\t\t\t\t\t\"id\": \"{{servicecategory_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/services","urlObject":{"path":["v1","services"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"68d31748-935d-4181-b4b4-349d97061598","name":"Add a new service","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"service\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"key\": \"test  - 688\",\r\n\t\t\t\"description\": \"test service\",\r\n\t\t\t\"unit_label\": \"hours\",\r\n\t\t\t\"dset\": \"{{dset_id}}\",\r\n\t\t\t\"type\": \"service_name_in_header\",\r\n\t\t\t\"usage_col\": \"unique_key\",\r\n\t\t\t\"consumption_col\": \"quantity\",\r\n\t\t\t\"instance_col\": \"hostname\",\r\n\t\t\t\"interval\": \"month\",\r\n\t\t\t\"charge_type\": \"manual_per_unit\",\r\n\t\t\t\"cogs_type\": \"none\",\r\n\t\t\t\"proration_type\": \"full\",\r\n\t\t\t\"charge_model\": \"peak\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"servicecategory\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"servicecategory\",\r\n\t\t\t\t\t\"id\": \"{{servicecategory_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/services"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Nov 2022 12:57:19 GMT"},{"key":"Date","value":"Tue, 01 Nov 2022 12:57:19 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Service/Services"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xa6fef1134596333e7a4714dde4f3fc5b"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-gt3j6RUUolWhpoP4TEvU2J0ImGSeeQwO';style-src 'self' 'nonce-gt3j6RUUolWhpoP4TEvU2J0ImGSeeQwO';font-src 'self' data:"},{"key":"Request-Id","value":"7d035efc-9e70-4d09-bb04-0d78b35ba0f6"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"service\",\n        \"id\": \"20\",\n        \"attributes\": {\n            \"key\": \"test  - 134\",\n            \"description\": \"test service\",\n            \"unit_label\": \"hours\",\n            \"dset\": \"test.usage\",\n            \"type\": \"service_name_in_header\",\n            \"usage_col\": \"unique_key\",\n            \"consumption_col\": \"quantity\",\n            \"instance_col\": \"hostname\",\n            \"interval\": \"month\",\n            \"cogs_type\": \"none\",\n            \"proration_type\": \"full\",\n            \"charge_model\": \"peak\",\n            \"charge_model_specific_day\": null,\n            \"created_at\": \"1970-08-23T00:58:21Z\",\n            \"updated_at\": \"2022-11-01T12:57:19Z\",\n            \"seen_at\": \"(not supported yet)\",\n            \"charge_type\": \"manual_per_unit\",\n            \"orphan\": false\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/services/20\"\n        },\n        \"relationships\": {\n            \"adjustments\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/adjustments\",\n                    \"related\": \"http://localhost:8012/v1/services/20/adjustments\"\n                }\n            },\n            \"dset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/dset\",\n                    \"related\": \"http://localhost:8012/v1/services/20/dset\"\n                }\n            },\n            \"dataset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/dataset\",\n                    \"related\": \"http://localhost:8012/v1/services/20/dataset\"\n                }\n            },\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/services/20/metadata\"\n                }\n            },\n            \"servicecategory\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/servicecategory\",\n                    \"related\": \"http://localhost:8012/v1/services/20/servicecategory\"\n                }\n            },\n            \"rates\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/rates\",\n                    \"related\": \"http://localhost:8012/v1/services/20/rates\"\n                }\n            },\n            \"budgetitems\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/budgetitems\",\n                    \"related\": \"http://localhost:8012/v1/services/20/budgetitems\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"759bfc3e-f514-4410-aa94-806ec0a34da2"},{"name":"Retrieve a service","event":[{"listen":"test","script":{"id":"fb5d5306-9599-42e7-80f6-d64e25137899","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('service');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"service_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    ","    pm.expect(response.data.attributes).to.have.property('key');","    pm.expect(response.data.attributes).to.have.property('description');","    pm.expect(response.data.attributes).to.have.property('unit_label');","    pm.expect(response.data.attributes).to.have.property('dset');","    pm.expect(response.data.attributes).to.have.property('type');","    pm.expect(response.data.attributes).to.have.property('usage_col');","    pm.expect(response.data.attributes).to.have.property('consumption_col');","    pm.expect(response.data.attributes).to.have.property('instance_col');","    pm.expect(response.data.attributes).to.have.property('interval');","    pm.expect(response.data.attributes).to.have.property('charge_type');","    pm.expect(response.data.attributes).to.have.property('cogs_type');","    pm.expect(response.data.attributes).to.have.property('proration_type');","    pm.expect(response.data.attributes).to.have.property('created_at');","    pm.expect(response.data.attributes).to.have.property('updated_at');","    pm.expect(response.data.attributes).to.have.property('seen_at');","    pm.expect(response.data.attributes).to.have.property('orphan');","    pm.expect(response.data.attributes).to.have.property('charge_model');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"cf358c40-8f8f-4990-b238-e79c1376240c","exec":[""],"type":"text/javascript"}}],"id":"d080ccf9-167c-3a43-bcc7-66b248b829b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/services/:service_id?include","urlObject":{"path":["v1","services",":service_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>servicecategory</code>, <code>rates</code>, <code>adjustments</code>, <code>dset</code>, <code>metadata</code>, <code>budgetitems</code>.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[{"type":"string","value":"{{service_id}}","key":"service_id"}]}},"response":[{"id":"a2473449-09ff-4cfc-9e18-ad78c0826905","name":"Retrieve a service","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/services/:service_id?include","host":["{{base_url}}"],"path":["v1","services",":service_id"],"query":[{"key":"include","value":null,"description":"Include additional related resources. Possible values: `servicecategory`, `rates`, `adjustments`, `dset`, `metadata`, `budgetitems`."}],"variable":[{"key":"service_id","value":"{{service_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Nov 2022 12:57:34 GMT"},{"key":"Date","value":"Tue, 01 Nov 2022 12:57:34 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xed8e93b2dea2d304cf3d486a5e948bda"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-cdhiMDgvv7NmOZKQ77olFPdjwEBdSzOj';style-src 'self' 'nonce-cdhiMDgvv7NmOZKQ77olFPdjwEBdSzOj';font-src 'self' data:"},{"key":"Request-Id","value":"ae0b84ef-ec79-448b-9d77-283cc89928cc"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"service\",\n        \"id\": \"20\",\n        \"attributes\": {\n            \"key\": \"test  - 134\",\n            \"description\": \"test service\",\n            \"unit_label\": \"hours\",\n            \"dset\": \"test.usage\",\n            \"type\": \"service_name_in_header\",\n            \"usage_col\": \"unique_key\",\n            \"consumption_col\": \"quantity\",\n            \"instance_col\": \"hostname\",\n            \"interval\": \"month\",\n            \"cogs_type\": \"none\",\n            \"proration_type\": \"full\",\n            \"charge_model\": \"peak\",\n            \"charge_model_specific_day\": null,\n            \"created_at\": \"1970-08-23T00:58:21Z\",\n            \"updated_at\": \"2022-11-01T12:57:19Z\",\n            \"seen_at\": \"(not supported yet)\",\n            \"charge_type\": \"manual_per_unit\",\n            \"orphan\": false\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/services/20\"\n        },\n        \"relationships\": {\n            \"adjustments\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/adjustments\",\n                    \"related\": \"http://localhost:8012/v1/services/20/adjustments\"\n                }\n            },\n            \"dset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/dset\",\n                    \"related\": \"http://localhost:8012/v1/services/20/dset\"\n                }\n            },\n            \"dataset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/dataset\",\n                    \"related\": \"http://localhost:8012/v1/services/20/dataset\"\n                }\n            },\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/services/20/metadata\"\n                }\n            },\n            \"servicecategory\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/servicecategory\",\n                    \"related\": \"http://localhost:8012/v1/services/20/servicecategory\"\n                }\n            },\n            \"rates\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/rates\",\n                    \"related\": \"http://localhost:8012/v1/services/20/rates\"\n                }\n            },\n            \"budgetitems\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/budgetitems\",\n                    \"related\": \"http://localhost:8012/v1/services/20/budgetitems\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"d080ccf9-167c-3a43-bcc7-66b248b829b3"},{"name":"Update a service","event":[{"listen":"test","script":{"id":"116e5453-c202-4a11-b1e6-668e872131bf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('service');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"service_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    ","    pm.expect(response.data.attributes).to.have.property('key');","    pm.expect(response.data.attributes).to.have.property('description');","    pm.expect(response.data.attributes).to.have.property('unit_label');","    pm.expect(response.data.attributes).to.have.property('dset');","    pm.expect(response.data.attributes).to.have.property('type');","    pm.expect(response.data.attributes).to.have.property('usage_col');","    pm.expect(response.data.attributes).to.have.property('consumption_col');","    pm.expect(response.data.attributes).to.have.property('instance_col');","    pm.expect(response.data.attributes).to.have.property('interval');","    pm.expect(response.data.attributes).to.have.property('charge_type');","    pm.expect(response.data.attributes).to.have.property('cogs_type');","    pm.expect(response.data.attributes).to.have.property('proration_type');","    pm.expect(response.data.attributes).to.have.property('created_at');","    pm.expect(response.data.attributes).to.have.property('updated_at');","    pm.expect(response.data.attributes).to.have.property('seen_at');","    pm.expect(response.data.attributes).to.have.property('orphan');","    pm.expect(response.data.attributes).to.have.property('charge_model');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"e0c64cda-dd5d-4682-987e-d5d961ad0ec4","exec":[""],"type":"text/javascript"}}],"id":"8ccf107d-93b0-a925-9678-0025ce33f846","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"service\",\n        \"id\": \"{{service_id}}\",\n        \"attributes\": {\n            \"key\": \"{{service_key}}\",\n            \"description\": \"modified test service\",\n            \"unit_label\": \"hours\",\n\t\t\t\"dset\": \"{{dset_id}}\",\n\t\t\t\"type\": \"service_name_in_header\",\n\t\t\t\"usage_col\": \"unique_key\",\n\t\t\t\"consumption_col\": \"quantity\",\n\t\t\t\"instance_col\": \"hostname\",\n\t\t\t\"interval\": \"month\",\n\t\t\t\"charge_type\": \"manual_per_unit\",\n\t\t\t\"cogs_type\": \"none\",\n\t\t\t\"proration_type\": \"full\",\n\t\t\t\"charge_model\": \"average\"\n        }\n    }\n}"},"url":"{{base_url}}/v1/services/:service_id","urlObject":{"path":["v1","services",":service_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{service_id}}","key":"service_id"}]}},"response":[{"id":"7f5cd7b9-16b1-471a-b71f-c9e8fa9775f4","name":"Update a service","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"service\",\n        \"id\": \"{{service_id}}\",\n        \"attributes\": {\n            \"key\": \"key - 707\",\n            \"description\": \"modified test service\",\n            \"unit_label\": \"hours\",\n\t\t\t\"dset\": \"{{dset_id}}\",\n\t\t\t\"type\": \"service_name_in_header\",\n\t\t\t\"usage_col\": \"unique_key\",\n\t\t\t\"consumption_col\": \"quantity\",\n\t\t\t\"instance_col\": \"hostname\",\n\t\t\t\"interval\": \"month\",\n\t\t\t\"charge_type\": \"manual_per_unit\",\n\t\t\t\"cogs_type\": \"none\",\n\t\t\t\"proration_type\": \"full\",\n\t\t\t\"charge_model\": \"average\"\n        }\n    }\n}"},"url":{"raw":"{{base_url}}/v1/services/:service_id","host":["{{base_url}}"],"path":["v1","services",":service_id"],"variable":[{"key":"service_id","value":"{{service_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Nov 2022 12:58:04 GMT"},{"key":"Date","value":"Tue, 01 Nov 2022 12:58:04 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X50b58369b2f94105ec67cf7aad12a303"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-S1ORsK9fWhdYcfl4KNVrdgIfVU7023PS';style-src 'self' 'nonce-S1ORsK9fWhdYcfl4KNVrdgIfVU7023PS';font-src 'self' data:"},{"key":"Request-Id","value":"1288d91f-9a8a-4b5c-9454-7de97c82f4ae"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"service\",\n        \"id\": \"20\",\n        \"attributes\": {\n            \"key\": \"key - 473\",\n            \"description\": \"modified test service\",\n            \"unit_label\": \"hours\",\n            \"dset\": \"test.usage\",\n            \"type\": \"service_name_in_header\",\n            \"usage_col\": \"unique_key\",\n            \"consumption_col\": \"quantity\",\n            \"instance_col\": \"hostname\",\n            \"interval\": \"month\",\n            \"cogs_type\": \"none\",\n            \"proration_type\": \"full\",\n            \"charge_model\": \"average\",\n            \"charge_model_specific_day\": null,\n            \"created_at\": \"1970-08-23T00:58:21Z\",\n            \"updated_at\": \"2022-11-01T12:58:04Z\",\n            \"seen_at\": \"(not supported yet)\",\n            \"charge_type\": \"manual_per_unit\",\n            \"orphan\": false\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/services/20\"\n        },\n        \"relationships\": {\n            \"adjustments\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/adjustments\",\n                    \"related\": \"http://localhost:8012/v1/services/20/adjustments\"\n                }\n            },\n            \"dset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/dset\",\n                    \"related\": \"http://localhost:8012/v1/services/20/dset\"\n                }\n            },\n            \"dataset\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/dataset\",\n                    \"related\": \"http://localhost:8012/v1/services/20/dataset\"\n                }\n            },\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/services/20/metadata\"\n                }\n            },\n            \"servicecategory\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/servicecategory\",\n                    \"related\": \"http://localhost:8012/v1/services/20/servicecategory\"\n                }\n            },\n            \"rates\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/rates\",\n                    \"related\": \"http://localhost:8012/v1/services/20/rates\"\n                }\n            },\n            \"budgetitems\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/services/20/relationships/budgetitems\",\n                    \"related\": \"http://localhost:8012/v1/services/20/budgetitems\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"8ccf107d-93b0-a925-9678-0025ce33f846"},{"name":"Prepare affected reports","event":[{"listen":"test","script":{"id":"3c408348-5cd7-4c23-bba7-79fa89ee7d36","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","console.log(pm.response);"],"type":"text/javascript"}}],"id":"036e8d8f-585c-41d0-9c1d-5e74fe34a3bd","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/services/:service_id/prepareAffectedReports","urlObject":{"path":["v1","services",":service_id","prepareAffectedReports"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>Service ID</p>\n","type":"text/plain"},"type":"string","value":"{{service_id}}","key":"service_id"}]}},"response":[{"id":"b5229a09-a961-4405-b8cc-5dcdac667b5c","name":"Prepare affected reports","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/v1/services/:service_id/prepareAffectedReports","host":["{{base_url}}"],"path":["v1","services",":service_id","prepareAffectedReports"],"variable":[{"key":"service_id","value":"{{service_id}}","type":"string","description":"Service ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 11:31:17 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 11:31:17 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xfdbfd6fd395249d630cdc71f64eb3bf2"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xfdbfd6fd395249d630cdc71f64eb3bf2"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-c5q44AsGHpwV6Bc2iUYKWAgM9woY1KvG';style-src 'self' 'nonce-c5q44AsGHpwV6Bc2iUYKWAgM9woY1KvG';font-src 'self' data:"},{"key":"Request-Id","value":"73d14dae-0ace-4752-9bc5-50e413acb188"}],"cookie":[],"responseTime":null,"body":"{\n    \"prepare_report\": [\n        {\n            \"info\": {\n                \"report_name\": \"test\",\n                \"range\": \"all\"\n            },\n            \"data\": [\n                {\n                    \"report_id\": 1,\n                    \"dset\": \"test.usage\",\n                    \"first_date\": \"20170825\",\n                    \"last_date\": \"20170827\",\n                    \"status\": [\n                        {\n                            \"date\": \"20170825\",\n                            \"result\": \"skipped\",\n                            \"records\": 0\n                        },\n                        {\n                            \"date\": \"20170826\",\n                            \"result\": \"skipped\",\n                            \"records\": 0\n                        },\n                        {\n                            \"date\": \"20170827\",\n                            \"result\": \"skipped\",\n                            \"records\": 0\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"info\": {\n                \"report_name\": \"Test report - 976\",\n                \"range\": \"all\"\n            },\n            \"data\": [\n                {\n                    \"report_id\": 2,\n                    \"dset\": \"test.usage\",\n                    \"first_date\": \"20170825\",\n                    \"last_date\": \"20170827\",\n                    \"status\": [\n                        {\n                            \"date\": \"20170825\",\n                            \"result\": \"ok\",\n                            \"records\": 20\n                        },\n                        {\n                            \"date\": \"20170826\",\n                            \"result\": \"ok\",\n                            \"records\": 20\n                        },\n                        {\n                            \"date\": \"20170827\",\n                            \"result\": \"ok\",\n                            \"records\": 20\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"info\": {\n                \"report_name\": \"Test report - 25\",\n                \"range\": \"all\"\n            },\n            \"data\": [\n                {\n                    \"report_id\": 3,\n                    \"dset\": \"test.usage\",\n                    \"first_date\": \"20170825\",\n                    \"last_date\": \"20170827\",\n                    \"status\": [\n                        {\n                            \"date\": \"20170825\",\n                            \"result\": \"ok\",\n                            \"records\": 20\n                        },\n                        {\n                            \"date\": \"20170826\",\n                            \"result\": \"ok\",\n                            \"records\": 20\n                        },\n                        {\n                            \"date\": \"20170827\",\n                            \"result\": \"ok\",\n                            \"records\": 20\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"report\": [\n        {\n            \"info\": {\n                \"report_name\": \"test\",\n                \"start_date\": \"20170825\",\n                \"end_date\": \"20170827\",\n                \"days_in_range\": 4,\n                \"days_missing\": 0,\n                \"days_unprepared\": 0,\n                \"days_with_errors\": 0,\n                \"output_table\": \"pgp_1\",\n                \"instance_output_count\": 40,\n                \"service_output_count\": 40,\n                \"total_output_count\": 80,\n                \"result\": \"success\"\n            }\n        },\n        {\n            \"info\": {\n                \"report_name\": \"Test report - 976\",\n                \"start_date\": \"20170825\",\n                \"end_date\": \"20170827\",\n                \"days_in_range\": 4,\n                \"days_missing\": 0,\n                \"days_unprepared\": 0,\n                \"days_with_errors\": 0,\n                \"output_table\": \"pgp_2\",\n                \"instance_output_count\": 40,\n                \"service_output_count\": 11,\n                \"total_output_count\": 51,\n                \"result\": \"success\"\n            }\n        },\n        {\n            \"info\": {\n                \"report_name\": \"Test report - 25\",\n                \"start_date\": \"20170825\",\n                \"end_date\": \"20170827\",\n                \"days_in_range\": 4,\n                \"days_missing\": 0,\n                \"days_unprepared\": 0,\n                \"days_with_errors\": 0,\n                \"output_table\": \"pgp_3\",\n                \"instance_output_count\": 40,\n                \"service_output_count\": 11,\n                \"total_output_count\": 51,\n                \"result\": \"success\"\n            }\n        }\n    ]\n}"}],"_postman_id":"036e8d8f-585c-41d0-9c1d-5e74fe34a3bd"},{"name":"Delete a service","event":[{"listen":"test","script":{"id":"a9b33957-8d7c-45d2-a6c7-19a5150adb1b","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET service_id');","pm.environment.unset(\"service_id\");","","pm.environment.unset(\"service_key\");","console.log('UNSET service_key');"],"type":"text/javascript"}}],"id":"a4bcd022-a6df-4ae6-9bf3-06f0bedde601","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/services/:service_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","services",":service_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{service_id}}","key":"service_id"}]}},"response":[{"id":"fe552fee-0ef7-42c2-9e08-faa841b41bdb","name":"Delete a service","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/services/:service_id","host":["{{base_url}}"],"path":["v1","services",":service_id"],"variable":[{"id":"d6bce6f3-1d3c-4e95-a18c-382496d8c4ce","key":"service_id","value":"{{service_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"a4bcd022-a6df-4ae6-9bf3-06f0bedde601"}],"id":"f43592d6-0e71-4de1-824c-5eb7803f2de1","description":"<p>Services can be anything that is a sellable item, that can be consumed. And should relate to (extracted) consumption data.</p>\n<p>Exivtiy documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#service\">https://docs.exivity.com/architecture%20concepts/glossary/#service</a></p>\n<h4 id=\"the-service-object\"><strong>The Service Object</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td><em>string</em></td>\n<td>🔏 immutible</td>\n<td>Unique identifier</td>\n</tr>\n<tr>\n<td>description</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Friendly name</td>\n</tr>\n<tr>\n<td>unit_label</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Unit of consumption</td>\n</tr>\n<tr>\n<td>dset</td>\n<td><em>string</em></td>\n<td>🔏 immutible</td>\n<td>Dset this service is linked to</td>\n</tr>\n<tr>\n<td>type</td>\n<td><em>enum</em></td>\n<td>🔏 immutible</td>\n<td>One of <code>service_name_in_header</code> or <code>service_name_in_data</code></td>\n</tr>\n<tr>\n<td>usage_col</td>\n<td><em>string</em></td>\n<td>🔏 immutible</td>\n<td>Dset column containing keys</td>\n</tr>\n<tr>\n<td>consumption_col</td>\n<td><em>string</em></td>\n<td>🔏 immutible</td>\n<td>Dset column containing consumption amount</td>\n</tr>\n<tr>\n<td>instance_col</td>\n<td><em>string</em></td>\n<td>🔏 immutible</td>\n<td>Dset column containing unique instance id's</td>\n</tr>\n<tr>\n<td>interval</td>\n<td><em>enum</em></td>\n<td>🔏 immutible</td>\n<td>One of <code>never</code>, <code>individually</code>, <code>second</code>, <code>minute</code>, <code>hour</code>, <code>day</code>, <code>week</code>, <code>month</code> or <code>year</code>. Currently, only <code>individually</code>, <code>day</code> and <code>month</code> are implemented</td>\n</tr>\n<tr>\n<td>charge_type</td>\n<td><em>enum</em></td>\n<td>🔏 immutible</td>\n<td>One of <code>none</code>, <code>manual</code>, <code>manual_per_unit</code>, <code>manual_per_interval</code>, <code>automatic</code>, <code>automatic_per_unit</code>, <code>automatic_per_interval</code> or <code>other</code>, read more below</td>\n</tr>\n<tr>\n<td>cogs_type</td>\n<td><em>enum</em></td>\n<td>🔏 immutible</td>\n<td>One of <code>none</code>, <code>manual_per_unit</code>, <code>manual_per_interval</code>, <code>automatic_per_unit</code> or <code>automatic_per_interval</code>, read more below</td>\n</tr>\n<tr>\n<td>proration_type</td>\n<td><em>enum</em></td>\n<td>📝 editable</td>\n<td>One of <code>none</code> or <code>full</code>. If \"full\" with monthly, only charges for the days used.</td>\n</tr>\n<tr>\n<td>created_at</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n<td>Datetime (UTC) the service was first created</td>\n</tr>\n<tr>\n<td>updated_at</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n<td>Datetime (UTC) the service was last updated</td>\n</tr>\n<tr>\n<td>seen_at</td>\n<td><em>date</em></td>\n<td>👁 read-only</td>\n<td>ISO-8601 date (YYYY-MM-DD) the service was last seen in a dset</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"charge-and-cogs-type\">Charge and cogs type</h4>\n<p>The attributes <code>charge_type</code> and <code>cogs_type</code> define how the rate is used when calculating charge and cogs metrics using consumption of the service.</p>\n<ul>\n<li><p>The first part denotes whether the rate is dynamically derived from the usage data itself (<code>automatic</code>) or specified explicitly in rate entities (<code>manual</code>).</p>\n</li>\n<li><p>The second part denotes whether an amount per unit of consumption (<code>per_unit</code>) and/or per interval (<code>per_interval</code>) should be applied.</p>\n</li>\n</ul>\n<p>When the second part is omitted, both <code>per_unit</code> and <code>per_interval</code> are used. If no rate should be applied at all, <code>none</code> can be used. A value of <code>other</code> means a configuration is used not currently supported by the API.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"62575d24-1064-4c79-bcf1-43f5ad9f55f4","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"861a8252-f532-4bc0-bd68-a5f30d04fcf1","type":"text/javascript","exec":[""]}}],"_postman_id":"f43592d6-0e71-4de1-824c-5eb7803f2de1"},{"name":"/servicesubscriptions","item":[{"name":"Retrieve a list of service subscriptions","event":[{"listen":"test","script":{"id":"39c91cc0-a05b-44d6-a045-547af2160b1c","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"a67c16c1-c914-46e1-b745-641028a54be8","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"bde1f0fa-d64a-4f38-b65c-97a2e4c82399","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/servicesubscriptions?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","servicesubscriptions"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>account</code>, <code>service</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"bde1f0fa-d64a-4f38-b65c-97a2e4c82399"},{"name":"Add a new service subscription","event":[{"listen":"test","script":{"id":"ac5089c4-b302-43bb-ba74-764ab47386a3","exec":["pm.test(\"Status code is 201\", function() {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function() {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('servicesubscription');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.environment.set(\"servicesubscription_id\", response.data.id);","console.log('SET servicesubscription_id: ' + pm.environment.get(\"servicesubscription_id\"));","","pm.test(\"Response contains correct attributes\", function() {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.eql('test');","    pm.expect(response.data.attributes.quantity).to.eql(10.1);","    pm.expect(response.data.attributes.rate).to.eql(10.1);","    pm.expect(response.data.attributes.cogs).to.eql(10.1);","    pm.expect(response.data.attributes.type).to.eql('recurring');","    pm.expect(response.data.attributes.start_date).to.eql('2017-08-28');","    pm.expect(response.data.attributes.end_date).to.eql('2017-08-29');","    pm.expect(response.data.attributes.alt_interval).to.eql('day');","    pm.expect(response.data.attributes.instance).to.eql('exivity');","});","","pm.test(\"Response contains data.links\", function() {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"266f2772-2260-453d-a5c5-a191acdb9309","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireReport)\r","    .then(api.requireAccount)\r","    .then(api.requireServiceCategory)\r","    .then(api.requireService)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"5e875264-924a-4ba9-91fc-6bf3acf626bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"servicesubscription\",\r\n    \"attributes\": {\r\n      \"name\": \"test\",\r\n      \"quantity\": 10.10,\r\n      \"rate\": 10.10,\r\n      \"cogs\": 10.10,\r\n      \"type\": \"recurring\",\r\n      \"start_date\": \"2017-08-28\",\r\n      \"end_date\": \"2017-08-29\",\r\n      \"alt_interval\": \"day\",\r\n      \"charge_day\": null,\r\n      \"instance\": \"exivity\"\r\n    },\r\n    \"relationships\": {\r\n      \"account\": {\r\n        \"data\": {\r\n          \"type\": \"account\",\r\n          \"id\": \"{{account_id}}\"\r\n        }\r\n      },\r\n      \"service\": {\r\n        \"data\": {\r\n          \"type\": \"service\",\r\n          \"id\": \"{{service_id}}\"\r\n        }\r\n      }\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/servicesubscriptions","urlObject":{"path":["v1","servicesubscriptions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"cc5731a8-1d9a-4b03-a18a-ae01d9bda063","name":"Add a new service subscription","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"servicesubscription\",\r\n    \"attributes\": {\r\n      \"name\": \"test\",\r\n      \"quantity\": 10.10,\r\n      \"rate\": 10.10,\r\n      \"cogs\": 10.10,\r\n      \"type\": \"recurring\",\r\n      \"start_date\": \"2017-08-28\",\r\n      \"end_date\": \"2017-08-29\",\r\n      \"alt_interval\": \"day\",\r\n      \"charge_day\": null,\r\n      \"instance\": \"exivity\"\r\n    },\r\n    \"relationships\": {\r\n      \"account\": {\r\n        \"data\": {\r\n          \"type\": \"account\",\r\n          \"id\": \"{{account_id}}\"\r\n        }\r\n      },\r\n      \"service\": {\r\n        \"data\": {\r\n          \"type\": \"service\",\r\n          \"id\": \"{{service_id}}\"\r\n        }\r\n      }\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/servicesubscriptions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 11:34:17 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 11:34:17 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/ServiceSubscription/ServiceSubscriptions"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X211679449127f4518765de78c80f1189"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-xJI9IQFv2PldD8OmCyYko7evYu0H6gbK';style-src 'self' 'nonce-xJI9IQFv2PldD8OmCyYko7evYu0H6gbK';font-src 'self' data:"},{"key":"Request-Id","value":"a2e791fc-95e3-4175-ab68-fe2851782a68"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"servicesubscription\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"name\": \"test\",\n            \"quantity\": 10.1,\n            \"rate\": 10.1,\n            \"cogs\": 10.1,\n            \"type\": \"recurring\",\n            \"start_date\": \"2017-08-28\",\n            \"charge_day\": null,\n            \"end_date\": \"2017-08-29\",\n            \"alt_interval\": \"day\",\n            \"instance\": \"exivity\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/servicesubscriptions/1\"\n        },\n        \"relationships\": {\n            \"account\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicesubscriptions/1/relationships/account\",\n                    \"related\": \"http://localhost:8012/v1/servicesubscriptions/1/account\"\n                }\n            },\n            \"service\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/servicesubscriptions/1/relationships/service\",\n                    \"related\": \"http://localhost:8012/v1/servicesubscriptions/1/service\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"5e875264-924a-4ba9-91fc-6bf3acf626bc"},{"name":"Retrieve a service subscription - check check","event":[{"listen":"test","script":{"id":"58a3df93-863a-45b5-9950-de83949f289d","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('servicesubscription');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"servicesubscription_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.eql('test');","    pm.expect(response.data.attributes.quantity).to.eql(10.10);","    pm.expect(response.data.attributes.rate).to.eql(10.10);","    pm.expect(response.data.attributes.cogs).to.eql(10.10);","    pm.expect(response.data.attributes.type).to.eql('recurring');","    pm.expect(response.data.attributes.start_date).to.eql('2017-08-28');","    pm.expect(response.data.attributes.end_date).to.eql('2017-08-29');","    pm.expect(response.data.attributes.alt_interval).to.eql('day');","    pm.expect(response.data.attributes.instance).to.eql('exivity');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"72c6f121-50e9-4e05-863d-79b3cd4ac0b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id?include","urlObject":{"path":["v1","servicesubscriptions",":servicesubscription_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>account</code>, <code>service</code>.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[{"type":"any","value":"{{servicesubscription_id}}","key":"servicesubscription_id"}]}},"response":[],"_postman_id":"72c6f121-50e9-4e05-863d-79b3cd4ac0b9"},{"name":"Update a service subscriptions","event":[{"listen":"test","script":{"id":"c37dc956-0d32-4483-a6ba-2251968f9d9b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('servicesubscription');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"servicesubscription_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.eql('modified_test');","    pm.expect(response.data.attributes.quantity).to.eql(20.20);","    pm.expect(response.data.attributes.rate).to.eql(20.20);","    pm.expect(response.data.attributes.cogs).to.eql(20.20);","    pm.expect(response.data.attributes.type).to.eql('one_off');","    pm.expect(response.data.attributes.start_date).to.eql('2017-08-29');","    pm.expect(response.data.attributes.end_date).to.eql('2017-08-29');","    pm.expect(response.data.attributes.alt_interval).to.eql('month');","    pm.expect(response.data.attributes.instance).to.eql('exivity-updated');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"0a1251f3-78dc-44ec-ac8c-b54a2401db0c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"servicesubscription\",\r\n    \"id\": \"{{servicesubscription_id}}\",\r\n    \"attributes\": {\r\n      \"name\": \"modified_test\",\r\n      \"quantity\": 20.20,\r\n      \"rate\": 20.20,\r\n      \"cogs\": 20.20,\r\n      \"type\": \"one_off\",\r\n      \"start_date\": \"2017-08-29\",\r\n      \"alt_interval\": \"month\",\r\n      \"instance\": \"exivity-updated\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id","urlObject":{"path":["v1","servicesubscriptions",":servicesubscription_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{servicesubscription_id}}","key":"servicesubscription_id"}]}},"response":[],"_postman_id":"0a1251f3-78dc-44ec-ac8c-b54a2401db0c"},{"name":"Prepare affected reports","event":[{"listen":"test","script":{"id":"3c408348-5cd7-4c23-bba7-79fa89ee7d36","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireRate)","    .then(api.ready)","    .catch(function (err) {","        console.log(err);","    });","","","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200)","});","","console.log(pm.response);",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"28527ed4-485d-4380-bf3f-74a2a44b3264","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireServiceCategory)\r","    .then(api.requireService)\r","    .then(api.requireRate)\r","    .then(api.ready)\r","    .catch(function (err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"12790140-a252-43f5-a22d-5549d57061c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id/prepareAffectedReports","urlObject":{"path":["v1","servicesubscriptions",":servicesubscription_id","prepareAffectedReports"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{servicesubscription_id}}","key":"servicesubscription_id"}]}},"response":[],"_postman_id":"12790140-a252-43f5-a22d-5549d57061c1"},{"name":"Delete a service subscriptions","event":[{"listen":"test","script":{"id":"d039b6ae-a001-46e8-98d9-91d53c11181d","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET servicesubscription_id');","pm.environment.unset(\"servicesubscription_id\");"],"type":"text/javascript"}}],"id":"eba3052a-f9e7-4951-95ac-6f9c41c84a26","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","servicesubscriptions",":servicesubscription_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{servicesubscription_id}}","key":"servicesubscription_id"}]}},"response":[{"id":"f783307c-5892-4a45-b2fd-084601330e93","name":"Delete a service subscriptions","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id","host":["{{base_url}}"],"path":["v1","servicesubscriptions",":servicesubscription_id"],"variable":[{"key":"servicesubscription_id","value":"{{servicesubscription_id}}"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 12:21:20 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 12:21:20 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X6afa5174beb74d138784a5ec75408860"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-w7UyLMjBTNlZZLsQ8BpdYzI8MpPYpy1I';style-src 'self' 'nonce-w7UyLMjBTNlZZLsQ8BpdYzI8MpPYpy1I';font-src 'self' data:"},{"key":"Request-Id","value":"77957464-db7c-476e-a9e1-1fb808fe1e17"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"eba3052a-f9e7-4951-95ac-6f9c41c84a26"}],"id":"7b228dfa-2391-4054-bc79-b6a924143991","description":"<p>Subscriptions enable users to manage one-off and recurring transactions for charging non-metered services.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/services/subscriptions\">https://docs.exivity.com/services/subscriptions</a></p>\n<p>⚠️ Available since v3.0.0</p>\n<h4 id=\"the-service-subscription-object\">The Service Subscription Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td></td>\n</tr>\n<tr>\n<td>quantity</td>\n<td><em>int</em></td>\n<td></td>\n</tr>\n<tr>\n<td>rate</td>\n<td><em>int</em></td>\n<td></td>\n</tr>\n<tr>\n<td>cogs</td>\n<td><em>int</em></td>\n<td></td>\n</tr>\n<tr>\n<td>type</td>\n<td>recurring/one_off</td>\n<td></td>\n</tr>\n<tr>\n<td>start_date</td>\n<td>Y-m-d</td>\n<td></td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>Y-m-d</td>\n<td></td>\n</tr>\n<tr>\n<td>alt_interval</td>\n<td>day/month/year or null</td>\n<td>If not set, the associated service interval is used for the subscription.</td>\n</tr>\n<tr>\n<td>charge_day</td>\n<td>number</td>\n<td>Only validated when type=recurring and interval is year or month.  <br />Format:  <br />* <strong>year:</strong> <em>--MM--DD</em>, example: --01-31  <br />* <strong>month</strong> <em>number</em>, examples: 1 or 28.</td>\n</tr>\n<tr>\n<td>instance</td>\n<td>string</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"0a74fe97-24a0-4ff9-8706-af1801c253ff","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0cae8730-cc3e-4b93-b332-3fa8fd6c8d9b","type":"text/javascript","exec":[""]}}],"_postman_id":"7b228dfa-2391-4054-bc79-b6a924143991"},{"name":"/rates","item":[{"name":"Retrieve a list of rates","event":[{"listen":"test","script":{"id":"576d1050-8826-4de8-bf97-f3c28494480b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Content-Type is present\", function () {","    pm.response.to.have.header(\"Content-Type\");","});","","// Check response","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.response.to.be.json;","    pm.expect(response.data).to.be.an('array');","});","","// Check first rate","var rate = response.data[0];","pm.test(\"Rate type is correct\", function () {","    pm.expect(rate.type).to.eql('rate');","});","pm.test(\"Rate ID is set\", function () {","    pm.expect(rate.id).to.not.be.undefined;","});","pm.test(\"Rate attributes are correct\", function () {","    pm.expect(rate.attributes).to.be.an('object');","    pm.expect(rate.attributes).to.have.property(\"rate\");","    pm.expect(rate.attributes).to.have.property(\"rate_col\");","    pm.expect(rate.attributes).to.have.property(\"min_commit\");","    pm.expect(rate.attributes).to.have.property(\"effective_date\");","    pm.expect(rate.attributes).to.have.property(\"fixed\");","    pm.expect(rate.attributes).to.have.property(\"fixed_col\");","    pm.expect(rate.attributes).to.have.property(\"cogs_rate\");","    pm.expect(rate.attributes).to.have.property(\"cogs_rate_col\");","    pm.expect(rate.attributes).to.have.property(\"cogs_fixed\");","    pm.expect(rate.attributes).to.have.property(\"cogs_fixed_col\");","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"7f92fb9a-20ac-4c75-aaba-2bcc379bf1a9","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"0b00a043-02da-c3b0-0a43-ceb9344f6ea8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/rates?page[limit]&page[offset]&sort&filter[attribute]&include","urlObject":{"path":["v1","rates"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>service</code>, <code>account</code>, <code>ratetiers</code>.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[]}},"response":[],"_postman_id":"0b00a043-02da-c3b0-0a43-ceb9344f6ea8"},{"name":"Add a new rate","event":[{"listen":"test","script":{"id":"baabd271-5b14-44d4-89f6-8070c5ce0ce3","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('rate');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.eql({","\t\t\"rate\": 1,","\t\t\"rate_col\": \"rate_col\",","        \"min_commit\": null,","\t\t\"fixed\": 2,","\t\t\"fixed_col\": \"fixed_col\",","\t\t\"cogs_rate\": 3,","\t\t\"cogs_rate_col\": \"cogs_rate_col\",","\t\t\"cogs_fixed\": 4,","\t\t\"cogs_fixed_col\": \"cogs_fixed_col\",","\t\t\"effective_date\": \"2017-08-28\",","        \"end_date\": null,","        \"tier_aggregation_level\": 1","\t});","","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"rate_id\", response.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"673acce8-137e-4260-96c6-23ac9cda4b62","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireServiceCategory)","    .then(api.requireService)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"51ad76c6-fcc3-0def-8205-5234ddedf383","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"rate\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"rate\": \"1.0\",\r\n\t\t\t\"rate_col\": \"rate_col\",\r\n\t\t\t\"fixed\": \"2.0\",\r\n\t\t\t\"fixed_col\": \"fixed_col\",\r\n\t\t\t\"cogs_rate\": \"3.0\",\r\n\t\t\t\"cogs_rate_col\": \"cogs_rate_col\",\r\n\t\t\t\"cogs_fixed\": \"4.0\",\r\n\t\t\t\"cogs_fixed_col\": \"cogs_fixed_col\",\r\n\t\t\t\"effective_date\": \"2017-08-28\",\r\n            \"tier_aggregation_level\": \"1\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"service\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"service\",\r\n\t\t\t\t\t\"id\": \"{{service_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/rates","description":"<p>Account specific rates can be created through this endpoint by specifying the <code>account</code> relationship in the request body, e.g.:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"relationships\": {\n    \"service\": { ... },\n    \"account\": {\n        \"data\": {\n            \"type\": \"account\",\n            \"id\": \"1\"\n        }\n    }\n}\n</code></pre>","urlObject":{"path":["v1","rates"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"8f9155e8-a1f2-49ae-8ffb-098b39bfbd40","name":"Add a new rate","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"rate\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"rate\": \"1.0\",\r\n\t\t\t\"rate_col\": \"rate_col\",\r\n\t\t\t\"fixed\": \"2.0\",\r\n\t\t\t\"fixed_col\": \"fixed_col\",\r\n\t\t\t\"cogs_rate\": \"3.0\",\r\n\t\t\t\"cogs_rate_col\": \"cogs_rate_col\",\r\n\t\t\t\"cogs_fixed\": \"4.0\",\r\n\t\t\t\"cogs_fixed_col\": \"cogs_fixed_col\",\r\n\t\t\t\"effective_date\": \"2017-08-28\",\r\n            \"tier_aggregation_level\": \"1\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"service\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"service\",\r\n\t\t\t\t\t\"id\": \"1\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/rates"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 12:48:26 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 12:48:25 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Rate/Rates"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xd1dbcf262a1a8a58e332e8d86b764a21"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-6JOrDHS0aHFuAbBOsEEBwCwi2GjIzzyK';style-src 'self' 'nonce-6JOrDHS0aHFuAbBOsEEBwCwi2GjIzzyK';font-src 'self' data:"},{"key":"Request-Id","value":"83cb0846-0454-404c-9c26-f0618b4fc7d5"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"rate\",\n        \"id\": \"10\",\n        \"attributes\": {\n            \"rate\": 1,\n            \"rate_col\": \"rate_col\",\n            \"min_commit\": 0,\n            \"effective_date\": \"2017-08-28\",\n            \"tier_aggregation_level\": 1,\n            \"fixed\": 2,\n            \"fixed_col\": \"fixed_col\",\n            \"cogs_rate\": 3,\n            \"cogs_rate_col\": \"cogs_rate_col\",\n            \"cogs_fixed\": 4,\n            \"cogs_fixed_col\": \"cogs_fixed_col\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/rates/10\"\n        },\n        \"relationships\": {\n            \"service\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/10/relationships/service\",\n                    \"related\": \"http://localhost:8012/v1/rates/10/service\"\n                }\n            },\n            \"account\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/10/relationships/account\",\n                    \"related\": \"http://localhost:8012/v1/rates/10/account\"\n                }\n            },\n            \"ratetiers\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/10/relationships/ratetiers\",\n                    \"related\": \"http://localhost:8012/v1/rates/10/ratetiers\"\n                }\n            }\n        }\n    }\n}"},{"id":"5cb1ca75-56b0-4450-bcc6-bb05b0edd628","name":"Add a new rate with an account","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"rate\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"rate\": \"1.0\",\r\n\t\t\t\"rate_col\": \"rate_col\",\r\n\t\t\t\"fixed\": \"2.0\",\r\n\t\t\t\"fixed_col\": \"fixed_col\",\r\n\t\t\t\"cogs_rate\": \"3.0\",\r\n\t\t\t\"cogs_rate_col\": \"cogs_rate_col\",\r\n\t\t\t\"cogs_fixed\": \"4.0\",\r\n\t\t\t\"cogs_fixed_col\": \"cogs_fixed_col\",\r\n\t\t\t\"effective_date\": \"2017-08-27\",\r\n            \"tier_aggregation_level\": \"1\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"service\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"service\",\r\n\t\t\t\t\t\"id\": \"2\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"account\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"account\",\r\n\t\t\t\t\t\"id\": \"1\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/rates"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 12:47:19 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 12:47:19 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Rate/Rates"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xbf9b561baafae2a017cd730ce8c05d92"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-nEwo2HgWpxoEtUfuZB5x7VU6l5Dtypa7';style-src 'self' 'nonce-nEwo2HgWpxoEtUfuZB5x7VU6l5Dtypa7';font-src 'self' data:"},{"key":"Request-Id","value":"86d95b07-ac5e-481c-a4d7-96810fc2349a"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"rate\",\n        \"id\": \"9\",\n        \"attributes\": {\n            \"rate\": 1,\n            \"rate_col\": \"rate_col\",\n            \"min_commit\": 0,\n            \"effective_date\": \"2017-08-27\",\n            \"tier_aggregation_level\": 1,\n            \"fixed\": 2,\n            \"fixed_col\": \"fixed_col\",\n            \"cogs_rate\": 3,\n            \"cogs_rate_col\": \"cogs_rate_col\",\n            \"cogs_fixed\": 4,\n            \"cogs_fixed_col\": \"cogs_fixed_col\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/rates/9\"\n        },\n        \"relationships\": {\n            \"service\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/9/relationships/service\",\n                    \"related\": \"http://localhost:8012/v1/rates/9/service\"\n                }\n            },\n            \"account\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/9/relationships/account\",\n                    \"related\": \"http://localhost:8012/v1/rates/9/account\"\n                }\n            },\n            \"ratetiers\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/9/relationships/ratetiers\",\n                    \"related\": \"http://localhost:8012/v1/rates/9/ratetiers\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"51ad76c6-fcc3-0def-8205-5234ddedf383"},{"name":"Retrieve a rate","event":[{"listen":"test","script":{"id":"e6f690a9-c3c8-4bc6-b1cc-5729d6fb73ac","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('rate');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.eql({","        \"rate\": 1,","        \"rate_col\": \"rate_col\",","        \"fixed\": 2,","        \"fixed_col\": \"fixed_col\",","        \"cogs_rate\": 3,","        \"cogs_rate_col\": \"cogs_rate_col\",","        \"cogs_fixed\": 4,","        \"cogs_fixed_col\": \"cogs_fixed_col\",","        \"effective_date\": \"2017-08-28\",","        \"end_date\": null,","        \"min_commit\": null,","        \"tier_aggregation_level\": 1","  });","","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"44a13da5-4b44-b03b-2458-39fb9768e189","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/rates/:rate_id?include=","urlObject":{"path":["v1","rates",":rate_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>service</code>, <code>account</code>, <code>ratetiers</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"description":{"content":"<p>Rate ID</p>\n","type":"text/plain"},"type":"any","value":"{{rate_id}}","key":"rate_id"}]}},"response":[{"id":"ed5a1261-7f7c-4228-baa4-c2dfac624527","name":"Retrieve a rate","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/rates/:rate_id?include=","host":["{{base_url}}"],"path":["v1","rates",":rate_id"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `service`, `account`, `ratetiers`"}],"variable":[{"id":"47513a26-895e-4a2f-acfd-985b8b1f7625","key":"rate_id","value":"{{rate_id}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 12:44:47 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 12:44:47 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X8731b074e90a76fd8a316927e7d54002"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-ufbIP398ZLvcQFljjaEBOh6J8KvnnPKP';style-src 'self' 'nonce-ufbIP398ZLvcQFljjaEBOh6J8KvnnPKP';font-src 'self' data:"},{"key":"Request-Id","value":"ec14108f-8f81-4c69-ad27-10d62027584c"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"rate\",\n        \"id\": \"8\",\n        \"attributes\": {\n            \"rate\": 1,\n            \"rate_col\": \"rate_col\",\n            \"min_commit\": 0,\n            \"effective_date\": \"2017-09-27\",\n            \"tier_aggregation_level\": 1,\n            \"fixed\": 2,\n            \"fixed_col\": \"fixed_col\",\n            \"cogs_rate\": 3,\n            \"cogs_rate_col\": \"cogs_rate_col\",\n            \"cogs_fixed\": 4,\n            \"cogs_fixed_col\": \"cogs_fixed_col\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/rates/8\"\n        },\n        \"relationships\": {\n            \"service\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/8/relationships/service\",\n                    \"related\": \"http://localhost:8012/v1/rates/8/service\"\n                }\n            },\n            \"account\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/8/relationships/account\",\n                    \"related\": \"http://localhost:8012/v1/rates/8/account\"\n                }\n            },\n            \"ratetiers\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/rates/8/relationships/ratetiers\",\n                    \"related\": \"http://localhost:8012/v1/rates/8/ratetiers\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"44a13da5-4b44-b03b-2458-39fb9768e189"},{"name":"Prepare affected reports","event":[{"listen":"test","script":{"id":"3c408348-5cd7-4c23-bba7-79fa89ee7d36","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","console.log(pm.response);"],"type":"text/javascript"}}],"id":"7f667470-caf0-b7bc-cdaf-46d7b7cdc345","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/rates/:rate_id/prepareAffectedReports","urlObject":{"path":["v1","rates",":rate_id","prepareAffectedReports"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{rate_id}}","key":"rate_id"}]}},"response":[],"_postman_id":"7f667470-caf0-b7bc-cdaf-46d7b7cdc345"},{"name":"Update a rate","event":[{"listen":"test","script":{"id":"16945c13-6e38-4f0b-b114-26105d49a4ab","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('rate');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"rate\": 10,","        \"rate_col\": \"rate_col2\",","        \"fixed\": 20,","        \"fixed_col\": \"fixed_col2\",","        \"cogs_rate\": 30,","        \"cogs_rate_col\": \"cogs_rate_col2\",","        \"cogs_fixed\": 40,","        \"cogs_fixed_col\": \"cogs_fixed_col2\",","        \"effective_date\": \"2017-08-28\",","        \"min_commit\": 50,","    });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"cf53c428-7015-4f22-6784-88c592b13b36","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"rate\",\r\n    \"id\": \"{{rate_id}}\",\r\n    \"attributes\": {\r\n      \"min_commit\": 50,\r\n      \"rate\": \"10.0\",\r\n      \"rate_col\": \"rate_col2\",\r\n      \"fixed\": \"20.0\",\r\n      \"fixed_col\": \"fixed_col2\",\r\n      \"cogs_rate\": \"30.0\",\r\n      \"cogs_rate_col\": \"cogs_rate_col2\",\r\n      \"cogs_fixed\": \"40.0\",\r\n      \"cogs_fixed_col\": \"cogs_fixed_col2\"\r\n      \r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/rates/:rate_id","urlObject":{"path":["v1","rates",":rate_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{rate_id}}","key":"rate_id"}]}},"response":[],"_postman_id":"cf53c428-7015-4f22-6784-88c592b13b36"},{"name":"Delete a rate","event":[{"listen":"test","script":{"id":"8394c1a9-b96c-4716-af0d-37271ea40f4c","exec":["/*pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET rate_id');","pm.environment.unset(\"rate_id\");*/"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"1589fa07-25f2-44bd-9533-95f973be7451","exec":[""],"type":"text/javascript"}}],"id":"8e869ba6-9971-6bdd-60a2-e4c60046b5d4","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/rates/:rate_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","rates",":rate_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{rate_id}}","key":"rate_id"}]}},"response":[{"id":"6f847473-1e4b-4776-b261-1d646e3569f2","name":"Delete a rate","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/rates/:rate_id","host":["{{base_url}}"],"path":["v1","rates",":rate_id"],"variable":[{"key":"rate_id","value":"{{rate_id}}"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 12:40:26 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 12:40:26 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xf3dcf248919675fa9c371c11a52ef871"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-1BF6Fk5A9HGdT86x4uWzaBoyI6ijAdUk';style-src 'self' 'nonce-1BF6Fk5A9HGdT86x4uWzaBoyI6ijAdUk';font-src 'self' data:"},{"key":"Request-Id","value":"9ea319e8-afbf-43bc-94f0-2eef822d40d1"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8e869ba6-9971-6bdd-60a2-e4c60046b5d4"}],"id":"72f5acaa-6d7f-7e2d-f628-5e136aea014c","description":"<p>Rates allows you to configure manual rates for services that do not have a rate provided with their data source.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/services/rates\">https://docs.exivity.com/services/rates</a></p>\n<h4 id=\"the-rate-object\">The Rate Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>rate</td>\n<td><em>numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>rate_col</td>\n<td><em>string</em></td>\n<td></td>\n</tr>\n<tr>\n<td>threshold</td>\n<td><em>numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>min_commit</td>\n<td><em>nullable/numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>effective_date</td>\n<td><em>required, format: yyyy-mm(-dd)</em></td>\n<td>If a service is tiered, rates are applied for whole months. So the format is year-month.</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td>nullable, format: yyyy-mm(-dd)</td>\n<td>This date is inclusive, so the rate is also applied to this date/month. Can only be applied to account-related rates. If a service is tiered, rates are applied for whole months. So the format is year-month.</td>\n</tr>\n<tr>\n<td>tier_aggregation_level</td>\n<td><em>nullable/numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>fixed</td>\n<td><em>numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>fixed_col</td>\n<td><em>string</em></td>\n<td></td>\n</tr>\n<tr>\n<td>cogs_rate</td>\n<td><em>numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>cogs_rate_col</td>\n<td><em>string</em></td>\n<td></td>\n</tr>\n<tr>\n<td>cogs_fixed</td>\n<td><em>numeric</em></td>\n<td></td>\n</tr>\n<tr>\n<td>cogs_fixed_col</td>\n<td><em>string</em></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"116f8c13-fa1c-4f26-9ccd-b5b0263b7c38","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ed4260d9-890f-41a7-a1ee-fe6b1f2cf5c5","type":"text/javascript","exec":[""]}}],"_postman_id":"72f5acaa-6d7f-7e2d-f628-5e136aea014c"},{"name":"/ratetiers","item":[{"name":"Retrieve a list of rate tiers","event":[{"listen":"test","script":{"id":"7e3ff32d-a6cb-46b4-995f-eacf3314dd45","exec":["/*pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Content-Type is present\", function () {","    pm.response.to.have.header(\"Content-Type\");","});","","// Check response","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.response.to.be.json;","    pm.expect(response.data).to.be.an('array');","});","","// Check first rate tier","var ratetier = response.data[0];","pm.test(\"Ratetier type is correct\", function () {","    pm.expect(ratetier.type).to.eql('ratetier');","});","pm.test(\"Ratetier ID is set\", function () {","    pm.expect(ratetier.id).to.not.be.undefined;","});","pm.test(\"Ratetier attributes are correct\", function () {","    pm.expect(ratetier.attributes).to.be.an('object');","    pm.expect(ratetier.attributes).to.have.property(\"threshold\");","    pm.expect(ratetier.attributes).to.have.property(\"rate\");","    pm.expect(ratetier.attributes).to.have.property(\"cogs\");","});*/"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"ccb79eb5-00ad-44a0-aaae-78c60acde9b8","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"ae5677a8-6702-4543-a4b1-c5bcf1e5d584","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/ratetiers?page[limit]&page[offset]&sort&filter[attribute]&include","urlObject":{"path":["v1","ratetiers"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>rate</code>.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[]}},"response":[],"_postman_id":"ae5677a8-6702-4543-a4b1-c5bcf1e5d584"},{"name":"Add a new rate tier","event":[{"listen":"test","script":{"id":"9ffc4db2-9e86-489d-96e3-ae78f96b5b8f","exec":["/*pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('ratetier');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.eql({","        \"threshold\": 0,","        \"rate\": 4,","        \"cogs\": null","    });","","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"ratetier_id\", response.data.id);*/"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"1a32580c-c875-4cb4-aab8-7b8e5153f47f","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireServiceCategory)","    .then(api.requireService)","    .then(api.requireRate)","    .then(api.ready)","    .catch(function (err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"2a13a1c3-15c4-4be2-bad0-e9e2072c6f45","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"ratetier\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"threshold\": \"0\",\r\n\t\t\t\"rate\": \"4.0\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"rate\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"rate\",\r\n\t\t\t\t\t\"id\": \"{{rate_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/ratetiers","urlObject":{"path":["v1","ratetiers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2a13a1c3-15c4-4be2-bad0-e9e2072c6f45"},{"name":"Retrieve a rate tier","event":[{"listen":"test","script":{"id":"0b31c755-85a8-4a98-bb50-b8291cd7272f","exec":["/*pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('ratetier');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.eql({","        \"threshold\": 0,","        \"rate\": 4,","        \"cogs\": null","    });","","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});*/"],"type":"text/javascript"}}],"id":"d0da37f2-4738-45df-a678-4d72c1cb997a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/ratetiers/{{ratetier_id}}?include=","urlObject":{"path":["v1","ratetiers","{{ratetier_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>rate</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"d0da37f2-4738-45df-a678-4d72c1cb997a"},{"name":"Update a rate tier","event":[{"listen":"test","script":{"id":"269605b7-7948-4d27-8009-7616d1430945","exec":["/*pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('ratetier');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"cogs\": 10,","    });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});*/"],"type":"text/javascript"}}],"id":"c27ad7c8-07c9-4c4e-a763-edd43f76e230","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"ratetier\",\r\n    \"id\": \"{{ratetier_id}}\",\r\n    \"attributes\": {\r\n      \"cogs\": 10\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/ratetiers/{{ratetier_id}}","urlObject":{"path":["v1","ratetiers","{{ratetier_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c27ad7c8-07c9-4c4e-a763-edd43f76e230"},{"name":"Delete a rate tier","event":[{"listen":"test","script":{"id":"7d1b5b6b-ee90-478f-8e64-46a29dea4706","exec":["/*pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET ratetier_id');","pm.environment.unset(\"ratetier_id\");*/"],"type":"text/javascript"}}],"id":"5c3f5009-1fd3-4e74-815c-e1cf5e458862","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/ratetiers/{{ratetier_id}}","urlObject":{"path":["v1","ratetiers","{{ratetier_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5c3f5009-1fd3-4e74-815c-e1cf5e458862"}],"id":"88f61d49-36e5-458f-9a2c-523658ab4631","description":"<p>⚠️ These endpoints are currently in alpha and may change at any time. Please don't use in production.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"0122b6eb-de76-4635-be7b-e4c86a68df6f","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"77ab14d2-fd4f-457d-8310-4a76335dc349","type":"text/javascript","exec":[""]}}],"_postman_id":"88f61d49-36e5-458f-9a2c-523658ab4631"},{"name":"/adjustments","item":[{"name":"Retrieve a list of adjustments","event":[{"listen":"test","script":{"id":"39c91cc0-a05b-44d6-a045-547af2160b1c","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"2dd6d417-9b01-51b4-0054-8706070923ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/adjustments?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","adjustments"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>account</code>, <code>services</code>, <code>servicecategories</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"2dd6d417-9b01-51b4-0054-8706070923ea"},{"name":"Add a new adjustment","event":[{"listen":"test","script":{"id":"ac5089c4-b302-43bb-ba74-764ab47386a3","exec":["pm.test(\"Status code is 201\", function() {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function() {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('adjustment');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.environment.set(\"adjustment_id\", response.data.id);","console.log('SET adjustment_id: ' + pm.environment.get(\"adjustment_id\"));","","pm.test(\"Response contains correct attributes\", function() {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.eql('test');","    pm.expect(response.data.attributes.amount).to.eql(-10);","    pm.expect(response.data.attributes.type).to.eql('relative');","    pm.expect(response.data.attributes.target).to.eql('charge');","    pm.expect(response.data.attributes.first_interval).to.eql('2017-01');","    pm.expect(response.data.attributes.last_interval).to.eql('2017-12');","});","","pm.test(\"Response contains data.links\", function() {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"564ddb47-a45b-46bd-8e57-3b73386b5012","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireReport)","    .then(api.requireAccount)","    .then(api.requireServiceCategory)","    .then(api.requireService)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"847994e1-4890-fc49-4ed6-969e6c5cbedd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"adjustment\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"test\",\r\n\t\t\t\"amount\": \"-10\",\r\n\t\t\t\"type\": \"relative\",\r\n\t\t\t\"target\": \"charge\",\r\n\t\t\t\"first_interval\": \"2017-01\",\r\n\t\t\t\"last_interval\": \"2017-12\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"account\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t  \"type\": \"account\",\r\n\t\t\t\t  \"id\": \"{{account_id}}\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"services\": {\r\n                \"data\": {\r\n                    \"type\": \"service\",\r\n                    \"id\": \"{{service_id}}\"\r\n                }\r\n            }\r\n\t\t}\r\n\t}\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/v1/adjustments","urlObject":{"path":["v1","adjustments"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"ea108936-4a30-4d40-bab0-884ed40ea6e9","name":"Add a new adjustment","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"adjustment\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"test\",\r\n\t\t\t\"amount\": \"-10\",\r\n\t\t\t\"type\": \"relative\",\r\n\t\t\t\"target\": \"charge\",\r\n\t\t\t\"first_interval\": \"2017-01\",\r\n\t\t\t\"last_interval\": \"2017-12\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"account\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t  \"type\": \"account\",\r\n\t\t\t\t  \"id\": \"1\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"services\": {\r\n                \"data\": {\r\n                    \"type\": \"service\",\r\n                    \"id\": \"1\"\r\n                }\r\n            }\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/adjustments"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 13:38:09 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 13:38:09 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Adjustment/Adjustments"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X00e07c52ec0a9a2c4024d18287fbdeca"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-6k30XXcmUg34psJwl2ufoEDuG49zT5Xq';style-src 'self' 'nonce-6k30XXcmUg34psJwl2ufoEDuG49zT5Xq';font-src 'self' data:"},{"key":"Request-Id","value":"86b22c30-805c-49bc-9cb1-64703b5abac8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"adjustment\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"name\": \"test\",\n            \"amount\": -10,\n            \"sort\": 0,\n            \"type\": \"relative\",\n            \"target\": \"charge\",\n            \"first_interval\": \"2017-01\",\n            \"last_interval\": \"2017-12\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/adjustments/2\"\n        },\n        \"relationships\": {\n            \"account\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/adjustments/2/relationships/account\",\n                    \"related\": \"http://localhost:8012/v1/adjustments/2/account\"\n                }\n            },\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/adjustments/2/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/adjustments/2/services\"\n                }\n            },\n            \"servicecategories\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/adjustments/2/relationships/servicecategories\",\n                    \"related\": \"http://localhost:8012/v1/adjustments/2/servicecategories\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"847994e1-4890-fc49-4ed6-969e6c5cbedd"},{"name":"Retrieve an adjustment","event":[{"listen":"test","script":{"id":"58a3df93-863a-45b5-9950-de83949f289d","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('adjustment');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"adjustment_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.eql('test');","    pm.expect(response.data.attributes.amount).to.eql(-10);","    pm.expect(response.data.attributes.type).to.eql('relative');","    pm.expect(response.data.attributes.target).to.eql('charge');","    pm.expect(response.data.attributes.first_interval).to.eql('2017-01');","    pm.expect(response.data.attributes.last_interval).to.eql('2017-12');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"26772232-c39a-d760-f3aa-1ab8ac3aa793","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/adjustments/:adjustment_id?include","urlObject":{"path":["v1","adjustments",":adjustment_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[{"type":"string","value":"{{adjustment_id}}","key":"adjustment_id"}]}},"response":[],"_postman_id":"26772232-c39a-d760-f3aa-1ab8ac3aa793"},{"name":"Update an adjustment","event":[{"listen":"test","script":{"id":"c37dc956-0d32-4483-a6ba-2251968f9d9b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('adjustment');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"adjustment_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.eql('modified_test');","    pm.expect(response.data.attributes.amount).to.eql(-20);","    pm.expect(response.data.attributes.type).to.eql('absolute');","    pm.expect(response.data.attributes.target).to.eql('quantity');","    pm.expect(response.data.attributes.first_interval).to.eql('2018-01');","    pm.expect(response.data.attributes.last_interval).to.eql(null);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"79e2e2dd-366a-798d-d39d-e785ceef8fa1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"adjustment\",\r\n    \"id\": \"{{adjustment_id}}\",\r\n    \"attributes\": {\r\n      \"name\": \"modified_test\",\r\n      \"amount\": \"-20\",\r\n      \"type\": \"absolute\",\r\n      \"target\": \"quantity\",\r\n      \"first_interval\": \"2018-01\",\r\n      \"last_interval\": \"\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/adjustments/:adjustment_id","urlObject":{"path":["v1","adjustments",":adjustment_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{adjustment_id}}","key":"adjustment_id"}]}},"response":[],"_postman_id":"79e2e2dd-366a-798d-d39d-e785ceef8fa1"},{"name":"Prepare affected reports","event":[{"listen":"test","script":{"id":"3c408348-5cd7-4c23-bba7-79fa89ee7d36","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","console.log(pm.response);"],"type":"text/javascript"}}],"id":"6429099a-dd77-4dd7-88d1-8e31e59c4477","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/adjustments/:adjustment_id/prepareAffectedReports","urlObject":{"path":["v1","adjustments",":adjustment_id","prepareAffectedReports"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{adjustment_id}}","key":"adjustment_id"}]}},"response":[],"_postman_id":"6429099a-dd77-4dd7-88d1-8e31e59c4477"},{"name":"Delete an adjustment","event":[{"listen":"test","script":{"id":"d039b6ae-a001-46e8-98d9-91d53c11181d","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET adjustment_id');","pm.environment.unset(\"adjustment_id\");"],"type":"text/javascript"}}],"id":"af8e10f8-dfa7-cfe7-3766-69d75eefa9b7","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept-encoding":true,"accept":true}},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/adjustments/:adjustment_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","adjustments",":adjustment_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{adjustment_id}}","key":"adjustment_id"}]}},"response":[{"id":"b99a4abe-62b3-4664-b1f7-34fad178a701","name":"Delete an adjustment","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/adjustments/:adjustment_id","host":["{{base_url}}"],"path":["v1","adjustments",":adjustment_id"],"variable":[{"id":"83efff8e-1602-4017-b843-cdb4d48d7715","key":"adjustment_id","value":"{{adjustment_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:37:53 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:37:53 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X7a968656dd5c9833df9ef97cdda1f71e"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-ZmubC0GRrYBR7VG0JAlhRWqPCGhyqtN3';style-src 'self' 'nonce-ZmubC0GRrYBR7VG0JAlhRWqPCGhyqtN3';font-src 'self' data:"},{"key":"Request-Id","value":"d6fbc10d-ad48-45c4-bfe6-f738b1b4c466"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"af8e10f8-dfa7-cfe7-3766-69d75eefa9b7"}],"id":"4dfd68e7-c992-32af-d8c6-e03a41c940ca","description":"<p>Adjustments allow a user to create account-specific rate adjustment policies.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#adjustment\">https://docs.exivity.com/architecture%20concepts/glossary/#adjustment</a></p>\n<h4 id=\"the-adjustment-object\">The Adjustment Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>amount</td>\n<td><em>double</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>sort</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Required, min: 0</td>\n</tr>\n<tr>\n<td>type</td>\n<td><em>enum</em>(<code>relative</code>, <code>absolute</code>)</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>target</td>\n<td><em>enum</em>(<code>charge</code>, <code>quantity</code>)</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>first_interval</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required, format: Y-m</td>\n</tr>\n<tr>\n<td>last_interval</td>\n<td><em>string?</em></td>\n<td>📝 editable</td>\n<td>Format: Y-m</td>\n</tr>\n<tr>\n<td>created_at</td>\n<td><em>timestamp</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n<tr>\n<td>updated_at</td>\n<td><em>timestamp</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>The following resources can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>has one</td>\n<td>account</td>\n<td>✔️</td>\n</tr>\n<tr>\n<td>has many</td>\n<td>services</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>has many</td>\n<td>servicecategories</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"b9bdf7ba-0cd2-495b-b74d-e8250725ff00","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"621bced5-9556-4c1d-85e6-d3ee2eb53622","type":"text/javascript","exec":[""]}}],"_postman_id":"4dfd68e7-c992-32af-d8c6-e03a41c940ca"}],"id":"71932c96-2982-4373-9c17-10d23a9d292c","description":"<p>Categories services can be grouped under. A category can contain multiple services, but each service can only be in one category.</p>\n<p>Examples of categories: <code>Software</code>, <code>Web services</code></p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"7b699cdf-f049-4fdd-9bee-930cef85224d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"92b00d36-410c-4677-9781-978d9e19f6e6","type":"text/javascript","exec":[""]}}],"_postman_id":"71932c96-2982-4373-9c17-10d23a9d292c"},{"name":"Accounts","item":[{"name":"/accounts","item":[{"name":"Retrieve a list of accounts","event":[{"listen":"test","script":{"id":"0fe73c41-f52e-40fe-b9ca-b44fa9df95f3","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});","","pm.environment.set(\"account_id\", response.data[0].id);","console.log('SET account_id: ' + pm.environment.get(\"account_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"dd30f236-72e2-4e57-bc8c-eb7d2aeb0a0e","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"a0eabedf-c915-60aa-57c4-2721f5180264","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/accounts?page[limit]&page[offset]&sort&filter[attribute]=&include=","urlObject":{"path":["v1","accounts"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":""},{"description":{"content":"<p>Include additional related resources. Possible values: <code>report</code>, <code>parent</code>, <code>children</code>, <code>rates</code>, <code>adjustments</code>, <code>users</code>, <code>metadata</code>, <code>budgetitems</code>, <code>servicesubscriptions</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"aacab4c6-4a1d-45ad-a14b-b8410357b20c","name":"Retrieve a list of accounts","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/accounts?page[limit]&page[offset]&sort&filter[name]=&include=","host":["{{base_url}}"],"path":["v1","accounts"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[name]","value":"","description":"Filter results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `report`, `parent`, `children`, `rates`, `adjustments`, `users`, `metadata`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.17.4"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/7.3.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 18 Dec 2019 15:00:59 GMT"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"account\",\n            \"id\": \"1\",\n            \"attributes\": {\n                \"name\": \"Mucho Cloud Corp\",\n                \"level\": 1,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"\",\n                \"lvl3_key\": \"\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/1\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"2\",\n            \"attributes\": {\n                \"name\": \"Wholesale IT Services\",\n                \"level\": 1,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"\",\n                \"lvl3_key\": \"\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/2\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"3\",\n            \"attributes\": {\n                \"name\": \"Fresh Bakery Inc\",\n                \"level\": 2,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Fresh Bakery Inc\",\n                \"lvl3_key\": \"\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/3\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"4\",\n            \"attributes\": {\n                \"name\": \"Rusty Bicycles Ltd\",\n                \"level\": 2,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Rusty Bicycles Ltd\",\n                \"lvl3_key\": \"\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/4\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"5\",\n            \"attributes\": {\n                \"name\": \"Deegan Daggers\",\n                \"level\": 2,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"Deegan Daggers\",\n                \"lvl3_key\": \"\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/5\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"6\",\n            \"attributes\": {\n                \"name\": \"Boezem Bezems\",\n                \"level\": 2,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"Boezem Bezems\",\n                \"lvl3_key\": \"\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/6\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"7\",\n            \"attributes\": {\n                \"name\": \"Europe\",\n                \"level\": 3,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Fresh Bakery Inc\",\n                \"lvl3_key\": \"Europe\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/7\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"8\",\n            \"attributes\": {\n                \"name\": \"Australia\",\n                \"level\": 3,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Fresh Bakery Inc\",\n                \"lvl3_key\": \"Australia\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/8\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"9\",\n            \"attributes\": {\n                \"name\": \"United Kingdom\",\n                \"level\": 3,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Rusty Bicycles Ltd\",\n                \"lvl3_key\": \"United Kingdom\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/9\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"10\",\n            \"attributes\": {\n                \"name\": \"Benelux\",\n                \"level\": 3,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Rusty Bicycles Ltd\",\n                \"lvl3_key\": \"Benelux\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/10\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"11\",\n            \"attributes\": {\n                \"name\": \"Japan\",\n                \"level\": 3,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"Deegan Daggers\",\n                \"lvl3_key\": \"Japan\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/11\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"12\",\n            \"attributes\": {\n                \"name\": \"London\",\n                \"level\": 3,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"Deegan Daggers\",\n                \"lvl3_key\": \"London\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/12\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"13\",\n            \"attributes\": {\n                \"name\": \"Brighton\",\n                \"level\": 3,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"Deegan Daggers\",\n                \"lvl3_key\": \"Brighton\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/13\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"14\",\n            \"attributes\": {\n                \"name\": \"Zeist\",\n                \"level\": 3,\n                \"lvl1_key\": \"Wholesale IT Services\",\n                \"lvl2_key\": \"Boezem Bezems\",\n                \"lvl3_key\": \"Zeist\",\n                \"lvl4_key\": \"\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/14\"\n            }\n        },\n        {\n            \"type\": \"account\",\n            \"id\": \"15\",\n            \"attributes\": {\n                \"name\": \"Marketing\",\n                \"level\": 4,\n                \"lvl1_key\": \"Mucho Cloud Corp\",\n                \"lvl2_key\": \"Fresh Bakery Inc\",\n                \"lvl3_key\": \"Europe\",\n                \"lvl4_key\": \"Marketing\",\n                \"lvl5_key\": \"\"\n            },\n            \"links\": {\n                \"self\": \"https://dev.exivity.net:8002/v1/accounts/15\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2015,\n            \"count\": 15,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 135\n        }\n    },\n    \"links\": {\n        \"self\": \"https://dev.exivity.net:8002/v1/accounts?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"https://dev.exivity.net:8002/v1/accounts?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=1\",\n        \"next\": \"https://dev.exivity.net:8002/v1/accounts?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=2\",\n        \"last\": \"https://dev.exivity.net:8002/v1/accounts?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=135\"\n    }\n}"}],"_postman_id":"a0eabedf-c915-60aa-57c4-2721f5180264"},{"name":"Add a new account","event":[{"listen":"test","script":{"id":"b7f17b37-dd6f-4163-94a9-8bafae73f956","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('account');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"name\",","\t\t\"level\",","\t\t\"lvl1_key\",","\t\t\"lvl2_key\",","\t\t\"lvl3_key\",","\t\t\"lvl4_key\",","\t\t\"lvl5_key\",","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"account_id\", response.data.id);","console.log('SET account_id: ' + pm.environment.get(\"account_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"03e20c9d-7ec2-4759-ba1d-3db98fbc6900","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireReport)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });"],"type":"text/javascript"}}],"id":"b0742128-2c66-996a-f6e6-ca7817c9fc7a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"account\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"My new account\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"report\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"report\",\r\n\t\t\t\t\t\"id\": \"{{report_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/accounts","urlObject":{"path":["v1","accounts"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"2c3387ce-375f-4056-a6fd-37f487a00b97","name":"Add a new account with a parent","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"account\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"My new account\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"report\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"report\",\r\n\t\t\t\t\t\"id\": \"1\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"parent\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"account\",\r\n\t\t\t\t\t\"id\": \"50\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/accounts"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Wed, 24 Jul 2019 09:06:27 GMT"},{"key":"Date","value":"Wed, 24 Jul 2019 09:06:27 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.3.6"},{"key":"Location","value":"https://localhost:8012/v1/account/51"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xf09c59da7e0aae44acf4a03b5c141f7f"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"account\",\n        \"id\": \"51\",\n        \"attributes\": {\n            \"name\": \"My new account\",\n            \"level\": \"2\",\n            \"lvl1_key\": \"My new account\",\n            \"lvl2_key\": \"My new account\",\n            \"lvl3_key\": \"\",\n            \"lvl4_key\": \"\",\n            \"lvl5_key\": \"\"\n        },\n        \"links\": {\n            \"self\": \"https://localhost:8012/v1/accounts/51\"\n        }\n    }\n}"},{"id":"85112809-0418-4454-91ae-931e4d55d58d","name":"Add a new account","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"account\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"My new account\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"report\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"report\",\r\n\t\t\t\t\t\"id\": \"{{report_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/accounts"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:40:47 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:40:47 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Account/Accounts"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xa1baaacbc55b21f2b5dbe7d5fd954500"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-JFSfUuXuelVmQGhZXnhdamMWbbf9dcC3';style-src 'self' 'nonce-JFSfUuXuelVmQGhZXnhdamMWbbf9dcC3';font-src 'self' data:"},{"key":"Request-Id","value":"675e3d50-1010-4fa9-8ba5-6c0bba5a7422"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"account\",\n        \"id\": \"48\",\n        \"attributes\": {\n            \"name\": \"My new account\",\n            \"level\": 1,\n            \"lvl1_key\": \"My new account\",\n            \"lvl2_key\": \"\",\n            \"lvl3_key\": \"\",\n            \"lvl4_key\": \"\",\n            \"lvl5_key\": \"\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/accounts/48\"\n        },\n        \"relationships\": {\n            \"adjustments\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/adjustments\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/adjustments\"\n                }\n            },\n            \"children\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/children\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/children\"\n                }\n            },\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/metadata\"\n                }\n            },\n            \"parent\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/parent\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/parent\"\n                }\n            },\n            \"rates\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/rates\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/rates\"\n                }\n            },\n            \"report\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/report\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/report\"\n                }\n            },\n            \"users\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/accounts/48/relationships/users\",\n                    \"related\": \"http://localhost:8012/v1/accounts/48/users\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"b0742128-2c66-996a-f6e6-ca7817c9fc7a"},{"name":"Retrieve an account","event":[{"listen":"test","script":{"id":"7778e902-8e93-4f8c-9f0b-fe62a0dbf6c7","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('account');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"account_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.name).to.be.a('string');","    pm.expect(response.data.attributes.level).to.be.a('number');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"52337c75-4fa0-9ec3-841d-2967733e293b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/accounts/{{account_id}}/?include","urlObject":{"path":["v1","accounts","{{account_id}}",""],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>report</code>, <code>parent</code>, <code>children</code>, <code>rates</code>, <code>adjustments</code>, <code>users</code>.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[]}},"response":[],"_postman_id":"52337c75-4fa0-9ec3-841d-2967733e293b"},{"name":"Update an account","event":[{"listen":"test","script":{"id":"dd186fa1-8b31-4812-bb64-c6d81137dbb0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('account');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"name\",","\t\t\"level\",","\t\t\"lvl1_key\",","\t\t\"lvl2_key\",","\t\t\"lvl3_key\",","\t\t\"lvl4_key\",","\t\t\"lvl5_key\",","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"d09df072-1f52-afed-13b3-a70e55cbe72d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"account\",\r\n    \"id\": \"{{account_id}}\",\r\n    \"attributes\": {\r\n      \"name\": \"My new account name\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/accounts/{{account_id}}","urlObject":{"path":["v1","accounts","{{account_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d09df072-1f52-afed-13b3-a70e55cbe72d"},{"name":"Delete an account","event":[{"listen":"test","script":{"id":"5e6804d5-306e-4e52-8411-de17899a576d","exec":["// Currently, accounts are read-only","pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","","console.log('UNSET account_id');","pm.environment.unset(\"account_id\");"],"type":"text/javascript"}}],"id":"76943791-af40-9226-7984-d5199885e579","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/accounts/:accountId","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","accounts",":accountId"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{account_id}}","key":"accountId"}]}},"response":[{"id":"77c412e5-39ad-4e5b-b6e0-91bfa445ddee","name":"Delete an account","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/accounts/:accountId","host":["{{base_url}}"],"path":["v1","accounts",":accountId"],"variable":[{"id":"b8698076-29a9-48c2-ab4c-97f71142b4b6","key":"accountId","value":"{{account_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:43:53 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:43:53 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xef2740bc9f5d305e3ed9c9c4fd8892ec"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xef2740bc9f5d305e3ed9c9c4fd8892ec"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-mznUHcXqL2uCNNJL1zvGKUnRdSpPxdk6';style-src 'self' 'nonce-mznUHcXqL2uCNNJL1zvGKUnRdSpPxdk6';font-src 'self' data:"},{"key":"Request-Id","value":"9e03a9ab-b2a6-4344-b576-e27be820d7a4"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"76943791-af40-9226-7984-d5199885e579"}],"id":"8fba406a-8220-4d0a-81a9-1b9034c8091d","description":"<p>Exivity documentation: <a href=\"https://docs.exivity.com/reports/accounts\">https://docs.exivity.com/reports/accounts</a></p>\n<h4 id=\"the-account-object\">The Account Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>required, max 255</td>\n</tr>\n<tr>\n<td>level</td>\n<td><em>integer</em></td>\n<td>👁 read-only</td>\n<td>between 1-5</td>\n</tr>\n<tr>\n<td>lvl1_key  <br />lvl2_key  <br />lvl3_key  <br />lvl4_key  <br />lvl5_key</td>\n<td><em>string</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"_postman_id":"8fba406a-8220-4d0a-81a9-1b9034c8091d"},{"name":"/budgets","item":[{"name":"Retrieve a list of budgets","event":[{"listen":"test","script":{"id":"39c91cc0-a05b-44d6-a045-547af2160b1c","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"4d7daa55-b24e-410b-82ef-136f05d92ed0","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"25638ccd-ae67-4634-9f1a-b9b44bfa09c6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgets?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","budgets"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>revisions</code>, <code>report</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"25638ccd-ae67-4634-9f1a-b9b44bfa09c6"},{"name":"Add a new budget","event":[{"listen":"test","script":{"id":"9e25ea4e-6d12-470d-a3ee-130368c562f2","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budget');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.interval).to.eql('year');","    pm.expect(response.data.attributes.description).to.eql('This is a new budget');","    pm.expect(response.data.attributes.metric).to.eql('cogs');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"budget_id\", response.data.id);","console.log('SET budget_id: ' + pm.environment.get(\"budget_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"d74cf94d-f7ec-4690-ad00-71dbc800bad3","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireReport)\r","    .then(api.requireAccount)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"02805255-4e31-46be-b0ad-80cbcb9c6771","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"budget\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"interval\": \"year\",\r\n\t\t\t\"description\": \"This is a new budget\",\r\n\t\t\t\"metric\": \"cogs\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"report\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"report\",\r\n\t\t\t\t\t\"id\"  : \"{{report_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/budgets","urlObject":{"path":["v1","budgets"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"cee70faa-0625-477d-96a4-79eddc3f9874","name":"Add a new budget","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"budget\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"interval\": \"year\",\r\n\t\t\t\"description\": \"This is a new budget\",\r\n\t\t\t\"metric\": \"cogs\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"report\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"report\",\r\n\t\t\t\t\t\"id\"  : \"{{report_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/budgets"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:47:24 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:47:24 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Budget/Budgets"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X4642dfbf0e8197bc7838bb3b7598ea2b"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-JWXbpWdPXoQArHPOvr7EGxj8itQqRETA';style-src 'self' 'nonce-JWXbpWdPXoQArHPOvr7EGxj8itQqRETA';font-src 'self' data:"},{"key":"Request-Id","value":"d630bf36-a884-46e8-955d-e9d54e895a5c"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"budget\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"interval\": \"year\",\n            \"description\": \"This is a new budget\",\n            \"metric\": \"cogs\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/budgets/1\"\n        },\n        \"relationships\": {\n            \"revisions\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgets/1/relationships/revisions\",\n                    \"related\": \"http://localhost:8012/v1/budgets/1/revisions\"\n                }\n            },\n            \"items\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgets/1/relationships/items\",\n                    \"related\": \"http://localhost:8012/v1/budgets/1/items\"\n                }\n            },\n            \"report\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgets/1/relationships/report\",\n                    \"related\": \"http://localhost:8012/v1/budgets/1/report\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"02805255-4e31-46be-b0ad-80cbcb9c6771"},{"name":"Retrieve a budget","event":[{"listen":"test","script":{"id":"bd868933-0a84-4845-a464-64b70a1d5e7b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budget');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.interval).to.eql('year');","    pm.expect(response.data.attributes.description).to.eql('This is a new budget');","    pm.expect(response.data.attributes.metric).to.eql('cogs');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"a3896f00-28c2-4d27-b092-a206a4231391","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgets/:budget_id?include=","urlObject":{"path":["v1","budgets",":budget_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources: <code>revisions</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"type":"string","value":"{{budget_id}}","key":"budget_id"}]}},"response":[],"_postman_id":"a3896f00-28c2-4d27-b092-a206a4231391"},{"name":"Update a budget","event":[{"listen":"test","script":{"id":"358cbac9-b630-4f2e-8bbe-e6aab4bc14d0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budget');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"budget_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.description).to.eql('modified_test');","    pm.expect(response.data.attributes.interval).to.eql('year');","    pm.expect(response.data.attributes.metric).to.eql('cogs');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","postman.setNextRequest(\"Add a new budget revision\");",""],"type":"text/javascript"}}],"id":"4fd7ba45-8815-4e0a-bed7-e223fd9fa4f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"budget\",\r\n\t\t\"id\": \"{{budget_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"description\": \"modified_test\",\r\n\t\t\t\"interval\": \"year\",\r\n\t\t\t\"metric\": \"cogs\"\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/budgets/:budget_id","urlObject":{"path":["v1","budgets",":budget_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{budget_id}}","key":"budget_id"}]}},"response":[],"_postman_id":"4fd7ba45-8815-4e0a-bed7-e223fd9fa4f3"},{"name":"Delete a budget","event":[{"listen":"test","script":{"id":"d039b6ae-a001-46e8-98d9-91d53c11181d","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET budget_id');","pm.environment.unset(\"budget_id\");","console.log('UNSET budgetrevision_id');","pm.environment.unset(\"budgetrevision_id\");"],"type":"text/javascript"}}],"id":"83b5b280-5edc-49b8-9b2d-ed28cf1224cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/budgets/:budget_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","budgets",":budget_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"5571b6cf-6509-4a2c-a7d7-cdaa595b6d39","type":"string","value":"{{budget_id}}","key":"budget_id"}]}},"response":[{"id":"d79e1839-b05a-40e1-833a-4d34ebb894af","name":"Delete a budget","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/budgets/:budget_id","host":["{{base_url}}"],"path":["v1","budgets",":budget_id"],"variable":[{"id":"5571b6cf-6509-4a2c-a7d7-cdaa595b6d39","key":"budget_id","value":"{{budget_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:47:47 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:47:47 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xb5e3c6102209ee145b3ded716bae6d3f"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-3QO59sP2EfDbo4N3Qye5FGTCKv8gAeqF';style-src 'self' 'nonce-3QO59sP2EfDbo4N3Qye5FGTCKv8gAeqF';font-src 'self' data:"},{"key":"Request-Id","value":"ba56e379-2cf7-4b86-8fb3-f7505cd1e2f2"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"83b5b280-5edc-49b8-9b2d-ed28cf1224cb"},{"name":"Run a budget","event":[{"listen":"test","script":{"id":"bd868933-0a84-4845-a464-64b70a1d5e7b","exec":["pm.test(\"Status code is 422\", function () {","    pm.response.to.have.status(422);","});","","const response = pm.response.json();","//nsole.log(response);","","pm.test(\"Response contains error\", function () {","    pm.expect(response.errors).to.be.an('array');","    pm.expect(response.errors[0].status).to.eql(422);","    pm.expect(response.errors[0].title).to.eql('ValidationException');","    pm.expect(response.errors[0].detail).to.eql('Horizon error response: Cannot find revision for 2:20170101');","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"0636eb00-aa96-41f2-8e44-95e553bbec23","exec":["// Need valid report ID\r","pm.environment.set(\"report_id\", 1);\r","\r","const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireReport)\r","    .then(api.requireAccount)\r","    .then(api.requireBudget)\r","    .then(api.requireBudgetRevision)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"84b4c28e-e0d8-42ec-ac00-3d36796417fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgets/:budget_id/run?start={{start}}&end={{end}}","urlObject":{"path":["v1","budgets",":budget_id","run"],"host":["{{base_url}}"],"query":[{"key":"start","value":"{{start}}"},{"key":"end","value":"{{end}}"}],"variable":[{"type":"string","value":"{{budget_id}}","key":"budget_id"}]}},"response":[],"_postman_id":"84b4c28e-e0d8-42ec-ac00-3d36796417fa"}],"id":"4c6991a8-141f-4c17-acc8-7fea42b3cd43","description":"<p>Exivity documentation: <a href=\"https://docs.exivity.com/reports/budget\">https://docs.exivity.com/reports/budget</a></p>\n<h4 id=\"the-budget-object\">The Budget Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>interval</td>\n<td><em>required, in: month, quarter, year</em></td>\n</tr>\n<tr>\n<td>description</td>\n<td><em>required, string</em></td>\n</tr>\n<tr>\n<td>metric</td>\n<td><em>in: charge, cogs</em></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"_postman_id":"4c6991a8-141f-4c17-acc8-7fea42b3cd43"},{"name":"/budgetrevisions","item":[{"name":"Retrieve a list of budgets revisions","event":[{"listen":"test","script":{"id":"39c91cc0-a05b-44d6-a045-547af2160b1c","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"ea658291-ed90-4caa-9c4f-8aa1fa7d6c7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgetrevisions?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","budgetrevisions"],"host":["{{base_url}}"],"query":[{"key":"page[limit]","value":null},{"key":"page[offset]","value":null},{"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>budget</code>, <code>items</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"ea658291-ed90-4caa-9c4f-8aa1fa7d6c7d"},{"name":"Add a new budget revision","event":[{"listen":"prerequest","script":{"id":"7da8e250-9c22-4c8b-8a0f-5d38096ef92c","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireReport)\r","    .then(api.requireBudget)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}},{"listen":"test","script":{"id":"d92eb680-700f-4194-9191-23866b384af9","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budgetrevision');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.effective_from).to.eql('2019-06-06');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"budgetrevision_id\", response.data.id);","console.log('SET budgetrevision_id: ' + pm.environment.get(\"budgetrevision_id\"));"],"type":"text/javascript"}}],"id":"1d2eeb07-5e1c-40d6-90b6-499d5061c915","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetrevision\",\n        \"attributes\": {\n            \"effective_from\": \"2019-06-06\"\n        },\n        \"relationships\": {\n        \t\"budget\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"budget\",\n        \t\t\t\"id\": \"{{budget_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetrevisions","urlObject":{"path":["v1","budgetrevisions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"dbd756c9-dee9-4d8b-814d-69973ac010e4","name":"Add a new budget revision","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetrevision\",\n        \"attributes\": {\n            \"effective_from\": \"20190606\"\n        },\n        \"relationships\": {\n        \t\"budget\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"budget\",\n        \t\t\t\"id\": \"{{budget_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetrevisions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:56:09 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:56:09 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/BudgetRevision/BudgetRevisions"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xce1189ea1cf7fd2ec30f6cd57558b796"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-iXn6aXFqVVswIJMEbqAyGIaA5WYmKa42';style-src 'self' 'nonce-iXn6aXFqVVswIJMEbqAyGIaA5WYmKa42';font-src 'self' data:"},{"key":"Request-Id","value":"78a1ddf6-5276-420a-aba3-80cc3d8f6de3"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"budgetrevision\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"effective_from\": \"2019-06-06\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/budgetrevisions/1\"\n        },\n        \"relationships\": {\n            \"budget\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetrevisions/1/relationships/budget\",\n                    \"related\": \"http://localhost:8012/v1/budgetrevisions/1/budget\"\n                }\n            },\n            \"items\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetrevisions/1/relationships/items\",\n                    \"related\": \"http://localhost:8012/v1/budgetrevisions/1/items\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"1d2eeb07-5e1c-40d6-90b6-499d5061c915"},{"name":"Retrieve a budget revision","event":[{"listen":"test","script":{"id":"bd868933-0a84-4845-a464-64b70a1d5e7b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budgetrevision');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.effective_from).to.eql('2019-06-06');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"86fe4c90-1e6c-412a-b595-13f779d569de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id?include=","urlObject":{"path":["v1","budgetrevisions",":budgetrevision_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>budget</code>, <code>items</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"type":"any","value":"{{budgetrevision_id}}","key":"budgetrevision_id"}]}},"response":[],"_postman_id":"86fe4c90-1e6c-412a-b595-13f779d569de"},{"name":"Validate a budget revision","event":[{"listen":"test","script":{"id":"bd868933-0a84-4845-a464-64b70a1d5e7b","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });",""],"type":"text/javascript"}}],"id":"7f2c6f24-2dff-4d39-89ce-2144fe6260b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id/validate","urlObject":{"path":["v1","budgetrevisions",":budgetrevision_id","validate"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{budgetrevision_id}}","key":"budgetrevision_id"}]}},"response":[],"_postman_id":"7f2c6f24-2dff-4d39-89ce-2144fe6260b5"},{"name":"Update a budget revision","event":[{"listen":"prerequest","script":{"id":"386bb0c5-d3e2-4c0e-8fb3-0a8e5e05e46d","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireReport)\r","    .then(api.requireBudget)\r","    .then(api.requireBudgetRevision)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r","    "],"type":"text/javascript"}},{"listen":"test","script":{"id":"78f48280-c913-46ae-9017-4c5bda16374a","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budgetrevision');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.effective_from).to.eql('2019-08-08');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","postman.setNextRequest(\"Add a new budget item\");",""],"type":"text/javascript"}}],"id":"963b091d-840d-437a-ac81-35f46cabe412","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetrevision\",\n        \"id\":\"{{budgetrevision_id}}\",\n        \"attributes\": {\n            \"effective_from\": \"2019-08-08\"\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id","urlObject":{"path":["v1","budgetrevisions",":budgetrevision_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{budgetrevision_id}}","key":"budgetrevision_id"}]}},"response":[],"_postman_id":"963b091d-840d-437a-ac81-35f46cabe412"},{"name":"Delete a budget revision","event":[{"listen":"test","script":{"id":"d039b6ae-a001-46e8-98d9-91d53c11181d","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET budgetrevision_id');","pm.environment.unset(\"budgetrevision_id\");"],"type":"text/javascript"}}],"id":"65818336-d800-430f-a5ea-8ab88a784f79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","budgetrevisions",":budgetrevision_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{budgetrevision_id}}","key":"budgetrevision_id"}]}},"response":[{"id":"a05fc744-0d44-4ec5-8837-fd48909ec7d4","name":"Delete a budget revision","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id","host":["{{base_url}}"],"path":["v1","budgetrevisions",":budgetrevision_id"],"variable":[{"key":"budgetrevision_id","value":"{{budgetrevision_id}}"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 14:56:30 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 14:56:30 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xb3c568ae1d05ed53a172acd6ceddc3ed"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-Bw4JhWvdWtkEmzxXUUaS9DPR6ngrvXsj';style-src 'self' 'nonce-Bw4JhWvdWtkEmzxXUUaS9DPR6ngrvXsj';font-src 'self' data:"},{"key":"Request-Id","value":"cc34fcf4-5221-43bc-9e22-998431c76e9c"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"65818336-d800-430f-a5ea-8ab88a784f79"}],"id":"5d9c8e6e-7a73-4068-a26a-d4f00f71831e","description":"<h4 id=\"the-budget-review-object\">The Budget Review Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>effective_from</td>\n<td>required, string, unique with in budget</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"_postman_id":"5d9c8e6e-7a73-4068-a26a-d4f00f71831e"},{"name":"/budgetitems","item":[{"name":"Retrieve a list of budgets items","event":[{"listen":"test","script":{"id":"39c91cc0-a05b-44d6-a045-547af2160b1c","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"8f01c522-e080-404e-a5d7-fcf65c37db04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgetitems?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","budgetitems"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>revision</code>, <code>parent</code>, <code>children</code>, <code>account</code>, <code>services</code>, <code>servicecategories</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"8f01c522-e080-404e-a5d7-fcf65c37db04"},{"name":"Add a new budget item","event":[{"listen":"prerequest","script":{"id":"94ecad76-7f78-47e2-94cf-55e901f1c275","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireReport)\r","    .then(api.requireAccount)\r","    .then(api.requireBudget)\r","    .then(api.requireBudgetRevision)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}},{"listen":"test","script":{"id":"11ad072a-2b90-4ac8-9e68-2d66d02717bb","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budgetitem');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.kind).to.eql('account');","    pm.expect(response.data.attributes.status).to.eql('regular');","    pm.expect(response.data.attributes.filter).to.eql('none');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"budgetitem_id\", response.data.id);","console.log('SET budgetitem_id: ' + pm.environment.get(\"budgetitem_id\"));"],"type":"text/javascript"}}],"id":"11eaef5a-5571-42e4-94ba-15c7324ccc50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetitem\",\n        \"attributes\": {\n            \"kind\": \"account\",\n            \"status\": \"regular\",\n            \"percent\": false,\n            \"distribution\": \"even\",\n            \"filter\": \"none\",\n            \"amount\": 5\n        },\n        \"relationships\": {\n        \t\"revision\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"budgetrevision\",\n        \t\t\t\"id\": \"{{budgetrevision_id}}\"\n        \t\t}\n        \t},\n        \t\"account\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"account\",\n        \t\t\t\"id\": \"{{account_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetitems","urlObject":{"path":["v1","budgetitems"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1ba4138f-ab8b-4880-8046-97988c646122","name":"Add a new budget item with a parent item","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetitem\",\n        \"attributes\": {\n            \"kind\": \"account\",\n            \"status\": \"regular\",\n            \"percent\": false,\n            \"distribution\": \"even\",\n            \"filter\": \"none\"\n        },\n        \"relationships\": {\n        \t\"revision\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"budgetrevision\",\n        \t\t\t\"id\": \"{{budgetrevision_id}}\"\n        \t\t}\n        \t},\n        \t\"account\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"account\",\n        \t\t\t\"id\": \"{{account_id}}\"\n        \t\t}\n        \t},\n        \t\"parent\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"item\",\n        \t\t\t\"id\": \"{{budgetitem_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetitems"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 26 Aug 2019 09:29:50 GMT"},{"key":"Date","value":"Mon, 26 Aug 2019 09:29:50 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.3.6"},{"key":"Location","value":"https://localhost:8012/v1/budgetitem/6"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X91ef46877eaaf096034f2a823f457554"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"budgetitem\",\n        \"id\": \"6\",\n        \"attributes\": {\n            \"kind\": \"account\",\n            \"status\": \"regular\",\n            \"filter\": \"none\",\n            \"amount\": null,\n            \"percent\": false,\n            \"distribution\": \"even\"\n        },\n        \"links\": {\n            \"self\": \"https://localhost:8012/v1/budgetitems/6\"\n        }\n    }\n}"},{"id":"32843655-f2da-4ae0-b953-6b03b16a4a4f","name":"Add a new budget item","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetitem\",\n        \"attributes\": {\n            \"kind\": \"account\",\n            \"status\": \"regular\",\n            \"percent\": false,\n            \"distribution\": \"even\",\n            \"filter\": \"none\"\n        },\n        \"relationships\": {\n        \t\"revision\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"budgetrevision\",\n        \t\t\t\"id\": \"{{budgetrevision_id}}\"\n        \t\t}\n        \t},\n        \t\"account\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"account\",\n        \t\t\t\"id\": \"{{account_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetitems"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 15:03:02 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 15:03:02 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/BudgetItem/BudgetItems"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xce520919c83f34489f6d05dd22ecc144"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-X9CNzI6MwE06oaOshBKS7QzpOJxWyqIR';style-src 'self' 'nonce-X9CNzI6MwE06oaOshBKS7QzpOJxWyqIR';font-src 'self' data:"},{"key":"Request-Id","value":"0ba84547-6ff3-4711-97cc-85a46dff0313"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"budgetitem\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"kind\": \"account\",\n            \"status\": \"regular\",\n            \"filter\": \"none\",\n            \"amount\": null,\n            \"percent\": false,\n            \"distribution\": \"even\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/budgetitems/1\"\n        },\n        \"relationships\": {\n            \"revision\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetitems/1/relationships/revision\",\n                    \"related\": \"http://localhost:8012/v1/budgetitems/1/revision\"\n                }\n            },\n            \"parent\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetitems/1/relationships/parent\",\n                    \"related\": \"http://localhost:8012/v1/budgetitems/1/parent\"\n                }\n            },\n            \"children\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetitems/1/relationships/children\",\n                    \"related\": \"http://localhost:8012/v1/budgetitems/1/children\"\n                }\n            },\n            \"account\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetitems/1/relationships/account\",\n                    \"related\": \"http://localhost:8012/v1/budgetitems/1/account\"\n                }\n            },\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetitems/1/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/budgetitems/1/services\"\n                }\n            },\n            \"servicecategories\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/budgetitems/1/relationships/servicecategories\",\n                    \"related\": \"http://localhost:8012/v1/budgetitems/1/servicecategories\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"11eaef5a-5571-42e4-94ba-15c7324ccc50"},{"name":"Retrieve a budget item","event":[{"listen":"test","script":{"id":"bd868933-0a84-4845-a464-64b70a1d5e7b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budgetitem');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.kind).to.eql('account');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"7d0c5ed5-bb6f-4f37-81e9-36533bc0c014","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/budgetitems/:item_id?include=","urlObject":{"path":["v1","budgetitems",":item_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>revision</code>, <code>parent</code>, <code>children</code>, <code>account</code>, <code>services</code>, <code>servicecategories</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"type":"string","value":"{{budgetitem_id}}","key":"item_id"}]}},"response":[],"_postman_id":"7d0c5ed5-bb6f-4f37-81e9-36533bc0c014"},{"name":"Update a budget item","event":[{"listen":"test","script":{"id":"358cbac9-b630-4f2e-8bbe-e6aab4bc14d0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('budgetitem');","    pm.expect(response.data.id).to.be.a('string');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.amount).to.eql(100);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"70a494c2-0906-48be-9f6f-ed80a09d0e95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"budgetitem\",\n        \"id\":\"{{budgetitem_id}}\",\n        \"attributes\": {\n            \"amount\": 100\n        }\n    }\n}"},"url":"{{base_url}}/v1/budgetitems/:budgetitem_id","urlObject":{"path":["v1","budgetitems",":budgetitem_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{budgetitem_id}}","key":"budgetitem_id"}]}},"response":[],"_postman_id":"70a494c2-0906-48be-9f6f-ed80a09d0e95"},{"name":"Delete a budget item","event":[{"listen":"test","script":{"id":"d039b6ae-a001-46e8-98d9-91d53c11181d","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET budgetitem_id');","pm.environment.unset(\"budgetitem_id\");","","postman.setNextRequest(\"Delete a budget\");","postman.setNextRequest(\"Delete a budget revision\");","postman.setNextRequest(\"Add a new metadata definition\");",""],"type":"text/javascript"}}],"id":"338a1b96-6e7d-4492-8273-5bbf9c32387d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/budgetitems/:budgetitem_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","budgetitems",":budgetitem_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{budgetitem_id}}","key":"budgetitem_id"}]}},"response":[{"id":"5aab1115-d726-4f7b-8250-960346e7b331","name":"Delete a budget item","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/budgetitems/:budgetitem_id","host":["{{base_url}}"],"path":["v1","budgetitems",":budgetitem_id"],"variable":[{"id":"ae41002d-edb7-4ab3-a3dc-2cee4fb6fdd1","key":"budgetitem_id","value":"{{budgetitem_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 15:03:19 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 15:03:19 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X2d10bd68cfa047c45afbe87b7710704a"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X2d10bd68cfa047c45afbe87b7710704a"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-nVmJSJKWNXNfXKeRYyEI5PYgEMET6msh';style-src 'self' 'nonce-nVmJSJKWNXNfXKeRYyEI5PYgEMET6msh';font-src 'self' data:"},{"key":"Request-Id","value":"f193a080-1aee-41b1-9348-b30f871609bb"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"338a1b96-6e7d-4492-8273-5bbf9c32387d"},{"name":"Patch budget items (create, update, delete)","event":[{"listen":"test","script":{"id":"eb31a4c3-fa68-4d2b-978b-4f67b1cfdc1d","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"12c72a77-6f10-4f6f-8b8c-174f87fab408","exec":[""],"type":"text/javascript"}}],"id":"83770ddf-b34b-4933-8bb7-fa9774e9da4f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"operations\": [\n\t\t{\n\t\t\t\"op\": \"add\",\n\t\t\t\"data\": {\n\t\t        \"type\":\"budgetitem\",\n\t\t        \"attributes\": {\n\t\t            \"kind\": \"account\",\n\t\t            \"status\": \"regular\",\n\t\t            \"percent\": 0,\n\t\t            \"distribution\": \"even\",\n\t\t            \"filter\": \"none\"\n\t\t        },\n\t\t        \"relationships\": {\n\t\t        \t\"revision\": {\n\t\t        \t\t\"data\": {\n\t\t        \t\t\t\"type\": \"budgetrevision\",\n\t\t        \t\t\t\"id\": \"{{budgetrevision_id}}\"\n\t\t        \t\t}\n\t\t        \t},\n\t\t        \t\"account\": {\n\t\t        \t\t\"data\": {\n\t\t        \t\t\t\"type\": \"account\",\n\t\t        \t\t\t\"id\": \"{{account_id}}\"\n\t\t        \t\t}\n\t\t        \t}\n\t\t        }\n\t\t    }\n\t\t},\n\t\t{\n\t\t\t\"op\":\"update\",\n            \"data\": {\n                \"type\": \"budgetitem\",\n                \"id\": \"{{budgetitem_id}}\",\n                \"attributes\": {\n                    \"kind\": \"service\"\n                }\n            }\n\t\t},\n\t\t{\n\t\t\t\"op\": \"delete\",\n            \"data\": {\n            \t\"type\": \"budgetitem\",\n            \t\"id\": \"{{budgetitem_id}}\"\n            }\n\t\t}\n\t]\n}\n"},"url":"{{base_url}}/v1/budgetitems","urlObject":{"path":["v1","budgetitems"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"83770ddf-b34b-4933-8bb7-fa9774e9da4f"}],"id":"bb3e09d1-33de-45c4-b0f5-48c04bc5318b","description":"<h4 id=\"the-budget-item-object\">The Budget Item Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>kind</td>\n<td><em>required, in: account, service category, service</em></td>\n</tr>\n<tr>\n<td>status</td>\n<td><em>required, in: regular, excluded, remainder</em></td>\n</tr>\n<tr>\n<td>filter</td>\n<td><em>in: none, servicecategory, service</em></td>\n</tr>\n<tr>\n<td>percent</td>\n<td><em>required, bool</em></td>\n</tr>\n<tr>\n<td>amount</td>\n<td><em>required if</em> <em><code>percent</code></em> <em>if true, number 0-100</em></td>\n</tr>\n<tr>\n<td>distribution</td>\n<td><em>required, in: none, even, shared</em></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"_postman_id":"bb3e09d1-33de-45c4-b0f5-48c04bc5318b"}],"id":"92661722-064b-e78a-ac6d-4172cf895678","auth":{"type":"noauth","isInherited":false},"_postman_id":"92661722-064b-e78a-ac6d-4172cf895678","description":""},{"name":"Data pipelines","item":[{"name":"/extractors","item":[{"name":"Retrieve a list of extractors","event":[{"listen":"test","script":{"id":"bd9b23b6-5d3f-455c-b0a4-420cdd6229e5","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"2522c54b-1013-4948-9c77-ae373c776324","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"d6f64a8a-5331-2233-fd65-6a634c45f5f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/extractors","urlObject":{"path":["v1","extractors"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"3a1d1779-9aac-4a6b-b60c-d04c4a61ab12","name":"Retrieve a list of extractors","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/extractors"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 03 Dec 2024 09:33:50 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X088f527d069f098f3deac683b10fac98"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X088f527d069f098f3deac683b10fac98"},{"key":"ETag","value":"\"66f614808c73fa89ed93698725c7cead\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-na9TxJytZolwNpwbwI3OS3VYHKNmQIn1';style-src 'self' 'nonce-na9TxJytZolwNpwbwI3OS3VYHKNmQIn1';font-src 'self' data:"},{"key":"Request-Id","value":"f7ba0acc-65db-4e46-9428-dc9982bd26ca"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"name\": \"Extractor_1\",\n        \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypted var key3 = FeBtNpkfbyD4ePKU+EXOwQ==\",\n        \"variables\": [\n            {\n                \"name\": \"key2\",\n                \"value\": \"value2\",\n                \"type\": \"normal\",\n                \"line\": 3,\n                \"comment\": \"\"\n            },\n            {\n                \"name\": \"key3\",\n                \"value\": \"<encrypted>\",\n                \"type\": \"encrypted\",\n                \"line\": 4,\n                \"comment\": \"\"\n            }\n        ],\n        \"hash\": \"54484ce4ada85569cf9f3834b52628671ba580cf\",\n        \"last_modified\": \"2024-06-13T11:44:32Z\"\n    }\n]"}],"_postman_id":"d6f64a8a-5331-2233-fd65-6a634c45f5f2"},{"name":"Add a new extractor","event":[{"listen":"test","script":{"id":"478869de-e2a0-4ff4-9064-da42c8880fdf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.variables).to.be.a('array');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.include('Extractor_test');","    pm.expect(response.contents.trim()).to.eql(\"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypt var key3 = 0\");","    pm.expect(response.variables).to.eql([","        {","            \"name\": \"key2\",","            \"value\": \"value2\",","            \"type\": \"normal\",","            \"line\": 3,","            \"comment\": \"\"","        },","        {","            \"name\": \"key3\",","            \"value\": \"<encrypted>\",","            \"type\": \"encrypted\",","            \"line\": 4,","            \"comment\": \"\"","        }","    ]);","});","","pm.environment.set(\"extractor_name\", response.name);","console.log('SET extractor_name: ' + pm.environment.get(\"extractor_name\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"aac9262b-ea32-44f7-8417-41a740ffab74","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","});"],"type":"text/javascript"}}],"id":"8bacf28a-bffd-97d4-5656-ee447869670e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Extractor test - 557\",\r\n  \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypt var key3 = 0\"\r\n}"},"url":"{{base_url}}/v1/extractors","urlObject":{"path":["v1","extractors"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"c85e58b6-e3a6-4ea7-89d5-27c3e0e6353b","name":"Add a new extractor","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"MyExtractor\",\r\n  \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypt var key3 = 0\"\r\n}"},"url":"{{base_url}}/v1/extractors"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:10:14 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:10:13 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X6aefe4e5adf9d01d43582439fc404e08"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X6aefe4e5adf9d01d43582439fc404e08"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-JTPxct1sF9uJic7zoh0dqDasPy4TcZIV';style-src 'self' 'nonce-JTPxct1sF9uJic7zoh0dqDasPy4TcZIV';font-src 'self' data:"},{"key":"Request-Id","value":"5bc92130-d345-4a31-9644-f620a63d8e5d"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"MyExtractor\",\n    \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypt var key3 = 0\",\n    \"variables\": [\n        {\n            \"name\": \"key2\",\n            \"value\": \"value2\",\n            \"type\": \"normal\",\n            \"line\": 3,\n            \"comment\": \"\"\n        },\n        {\n            \"name\": \"key3\",\n            \"value\": \"<encrypted>\",\n            \"type\": \"encrypted\",\n            \"line\": 4,\n            \"comment\": \"\"\n        }\n    ],\n    \"hash\": \"1c264e7285b12cb21e14bfe4f916808fa08c8dd5\",\n    \"last_modified\": \"2022-02-04T09:10:13Z\"\n}"}],"_postman_id":"8bacf28a-bffd-97d4-5656-ee447869670e"},{"name":"Retrieve an extractor","event":[{"listen":"test","script":{"id":"df1810ef-00ee-4a6d-aa97-19003fdf8f9d","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.variables).to.be.a('array');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.include('Extractor_test');","    pm.expect(response.contents.trim()).to.include(\"print Hello\");","    pm.expect(response.contents.trim()).to.include(\"var key1 = value1\");","    pm.expect(response.contents.trim()).to.include(\"public var key2 = value2\");","    pm.expect(response.contents.trim()).to.include(\"public encrypted var key3 =\");","    pm.expect(response.variables).to.eql([","        {","            \"name\": \"key2\",","            \"value\": \"value2\",","            \"type\": \"normal\",","            \"line\": 3,","            \"comment\": \"\"","        },","        {","            \"name\": \"key3\",","            \"value\": \"<encrypted>\",","            \"type\": \"encrypted\",","            \"line\": 4,","            \"comment\": \"\"","        }","    ]);","});"],"type":"text/javascript"}}],"id":"e1baa93e-d80a-5b9a-5d6b-a53e9f147359","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/extractors/{{extractor_name}}","urlObject":{"path":["v1","extractors","{{extractor_name}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"6f886860-c21f-4a93-a126-fa0839319f2b","name":"Retrieve an extractor","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/extractors/{{extractor_name}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:11:18 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:11:18 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X62bb6384361e96c4b8f46ec55195a6e1"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X62bb6384361e96c4b8f46ec55195a6e1"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-PGEpabRd3GLvY9RRlsSI7UioCMgF59Xw';style-src 'self' 'nonce-PGEpabRd3GLvY9RRlsSI7UioCMgF59Xw';font-src 'self' data:"},{"key":"Request-Id","value":"cad80ab2-5da0-4d59-b26d-3bc38dcc1761"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"MyExtractor\",\n    \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypted var key3 = fV5WxHB6IA7M2BjrAx0jLA==\",\n    \"variables\": [\n        {\n            \"name\": \"key2\",\n            \"value\": \"value2\",\n            \"type\": \"normal\",\n            \"line\": 3,\n            \"comment\": \"\"\n        },\n        {\n            \"name\": \"key3\",\n            \"value\": \"<encrypted>\",\n            \"type\": \"encrypted\",\n            \"line\": 4,\n            \"comment\": \"\"\n        }\n    ],\n    \"hash\": \"04460da520d3cf3ef36263f645fe7e46d18b91fa\",\n    \"last_modified\": \"2022-02-04T09:10:13Z\"\n}"}],"_postman_id":"e1baa93e-d80a-5b9a-5d6b-a53e9f147359"},{"name":"Update an extractor (contents)","event":[{"listen":"test","script":{"id":"ef02e963-380d-4083-8c04-62c5f92347a4","exec":["pm.test(\"Status code is 200\", function() {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function() {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains correct attributes\", function() {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.variables).to.be.a('array');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.include('Extractor_test');","    pm.expect(response.contents.trim()).to.eql(\"print Hello world\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypted var key3 = 0\");","    pm.expect(response.variables).to.eql([{","        \"name\": \"key2\",","        \"value\": \"value2\",","        \"type\": \"normal\",","        \"line\": 3,","        \"comment\": \"\"","    }, {","        \"name\": \"key3\",","        \"value\": \"<encrypted>\",","        \"type\": \"encrypted\",","        \"line\": 4,","        \"comment\": \"\"","    }]);","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"7414eba6-6d6b-4fb2-8a5a-b40d212fe240","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireExtractor)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"2ef1a0e5-b891-09ec-9df0-1e22e976514a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"contents\": \"print Hello world\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypted var key3 = 0\"\r\n}"},"url":"{{base_url}}/v1/extractors/{{extractor_name}}","urlObject":{"path":["v1","extractors","{{extractor_name}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"2ae49a33-f06d-4512-b9e6-6d32e85dd1c1","name":"Update an extractor (contents)","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"contents\": \"print Hello world\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypted var key3 = 0\"\r\n}"},"url":"{{base_url}}/v1/extractors/{{extractor_name}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 03 Dec 2024 10:14:08 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"Xa8cb55482436acda06d56e1f620a417a"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xa8cb55482436acda06d56e1f620a417a"},{"key":"ETag","value":"\"13c84d91ec4c75db16bf35c7c0367430\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-U4VNL7LeHpqZktp5RcpfP3D42cl1pJVz';style-src 'self' 'nonce-U4VNL7LeHpqZktp5RcpfP3D42cl1pJVz';font-src 'self' data:"},{"key":"Request-Id","value":"9e8399cf-4a66-4c93-9948-210d2b6053f0"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"MyExtractor\",\n    \"contents\": \"print Hello world\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypted var key3 = 0\",\n    \"variables\": [\n        {\n            \"name\": \"key2\",\n            \"value\": \"value2\",\n            \"type\": \"normal\",\n            \"line\": 3,\n            \"comment\": \"\"\n        },\n        {\n            \"name\": \"key3\",\n            \"value\": \"<encrypted>\",\n            \"type\": \"encrypted\",\n            \"line\": 4,\n            \"comment\": \"\"\n        }\n    ],\n    \"hash\": \"1c67d9d34e88715e14d9bcfcff24669543fdceb9\",\n    \"last_modified\": \"2024-12-03T10:14:08Z\"\n}"}],"_postman_id":"2ef1a0e5-b891-09ec-9df0-1e22e976514a"},{"name":"Update an extractor (variables)","event":[{"listen":"test","script":{"id":"489687ff-4c2b-44a1-b3b4-0c6f0444f938","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains updated attributes\", function () {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.variables).to.be.an('array');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.include('Extractor_test');","    pm.expect(response.contents.trim()).to.eql(\"print Hello world\\nvar key1 = value1\\npublic var key2 = \\\"value2\\\"\\npublic var key3 = \\\"value3\\\"\");","    pm.expect(response.variables).to.eql([","        {","            \"name\": \"key2\",","            \"value\": \"value2\",","            \"type\": \"normal\",","            \"line\": 3,","            \"comment\": \"\"","        },","        {","            \"name\": \"key3\",","            \"value\": \"value3\",","            \"type\": \"normal\",","            \"line\": 4,","            \"comment\": \"\"","        }","    ]);","});"],"type":"text/javascript"}}],"id":"b7fe3d74-7cb6-75ee-5f33-d7094800467d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"variables\": [\r\n        {\r\n            \"name\": \"key2\",\r\n            \"value\": \"value2\",\r\n            \"type\": \"normal\"\r\n        },\r\n        {\r\n            \"name\": \"key3\",\r\n            \"value\": \"value3\",\r\n            \"type\": \"normal\"\r\n        }\r\n    ]\r\n}"},"url":"{{base_url}}/v1/extractors/{{extractor_name}}","urlObject":{"path":["v1","extractors","{{extractor_name}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"8788eaaa-9ba6-45bd-b832-fdb6a708fbba","name":"Update an extractor (variables)","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"variables\": [\r\n        {\r\n            \"name\": \"key2\",\r\n            \"value\": \"value2\",\r\n            \"type\": \"normal\"\r\n        },\r\n        {\r\n            \"name\": \"key3\",\r\n            \"value\": \"value3\",\r\n            \"type\": \"normal\"\r\n        }\r\n    ]\r\n}"},"url":"{{base_url}}/v1/extractors/{{extractor_name}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 03 Dec 2024 10:14:17 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"Xa162932b6bf1c9b78450e3ea19e574e7"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xa162932b6bf1c9b78450e3ea19e574e7"},{"key":"ETag","value":"\"f601c7befeee476027bddd5a688724bc\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-RLcMoSRSFm6UFMusIvUscaxeTGhVzKH3';style-src 'self' 'nonce-RLcMoSRSFm6UFMusIvUscaxeTGhVzKH3';font-src 'self' data:"},{"key":"Request-Id","value":"afd9527e-db70-4035-ac48-47c769bb8f07"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"MyExtractor\",\n    \"contents\": \"print Hello world\\nvar key1 = value1\\npublic var key2 = \\\"value2\\\"\\npublic var key3 = \\\"value3\\\"\",\n    \"variables\": [\n        {\n            \"name\": \"key2\",\n            \"value\": \"value2\",\n            \"type\": \"normal\",\n            \"line\": 3,\n            \"comment\": \"\"\n        },\n        {\n            \"name\": \"key3\",\n            \"value\": \"value3\",\n            \"type\": \"normal\",\n            \"line\": 4,\n            \"comment\": \"\"\n        }\n    ],\n    \"hash\": \"dce9ab79f8911cbcca2beedd3a2ecbffd76d382e\",\n    \"last_modified\": \"2024-12-03T10:14:17Z\"\n}"}],"_postman_id":"b7fe3d74-7cb6-75ee-5f33-d7094800467d"},{"name":"Run an extractor","event":[{"listen":"test","script":{"id":"226697a8-125c-47b4-bfd4-0cb3404f1b09","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});"],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"ef0e2a30-2a18-4943-8e9f-c833c05df36e","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","});"],"type":"text/javascript","packages":{}}}],"id":"4e59415c-aabc-23c7-9e88-446a18061e36","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"job\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"extract\",\r\n            \"id\": \"{{extractor_name}}\"\r\n\t\t}\r\n\t}\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/v1/extractors/{{extractor_name}}/run","urlObject":{"path":["v1","extractors","{{extractor_name}}","run"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>Environment ID (optional)</p>\n","type":"text/plain"},"key":"environment_id","value":""}],"variable":[]}},"response":[{"id":"5a45f400-4cdc-43c0-ae4e-ff855fa892c5","name":"Run an extractor","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"job\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"extract\",\r\n            \"id\": \"{{extractor_name}}\"\r\n\t\t}\r\n\t}\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{base_url}}/v1/extractors/{{extractor_name}}/run","host":["{{base_url}}"],"path":["v1","extractors","{{extractor_name}}","run"],"query":[{"key":"environment_id","value":"","description":"Environment ID (optional)","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 03 Dec 2024 10:15:58 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X9ac67c880a7d87c4d4c9bc1f50ce8015"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X9ac67c880a7d87c4d4c9bc1f50ce8015"},{"key":"ETag","value":"\"d7bf710e3ae4342ebead0b0b862b9bb3\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-CcSBQq7IAJUXKlzRqpBJhSLTl1aw0waU';style-src 'self' 'nonce-CcSBQq7IAJUXKlzRqpBJhSLTl1aw0waU';font-src 'self' data:"},{"key":"Request-Id","value":"ffddcce6-6c84-451b-8a19-ec00f5bfa091"}],"cookie":[],"responseTime":null,"body":"[\n    \"=================================\\r\\nUSE: Unified Scriptable Extractor\\r\\n=================================\\r\\nHello world \\r\\n\\r\\nUSE script finished successfully\\r\\n\"\n]"}],"_postman_id":"4e59415c-aabc-23c7-9e88-446a18061e36"},{"name":"Delete an extractor","event":[{"listen":"test","script":{"id":"6feb0ad2-ea8e-41c8-8d7f-9c018e0d0dc3","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET extractor_name');","pm.environment.unset(\"extractor_name\");","","postman.clearEnvironmentVariable(\"extractor_name\");",""],"type":"text/javascript"}}],"id":"57a69d9c-ce34-4152-fb87-65fe92bcae02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/extractors/{{extractor_name}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","extractors","{{extractor_name}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1ef705d8-13f7-42db-98ac-4ddddd36c6be","name":"Delete an extractor","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/extractors/{{extractor_name}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:31:06 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:31:06 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X076bcabd4e5d38f1744b64000238a633"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X076bcabd4e5d38f1744b64000238a633"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-nnmG6LsqtgpBsYx1lTjerb8j5qc3XPgq';style-src 'self' 'nonce-nnmG6LsqtgpBsYx1lTjerb8j5qc3XPgq';font-src 'self' data:"},{"key":"Request-Id","value":"e708f866-9154-4c2d-aab5-02ef714b4b00"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"57a69d9c-ce34-4152-fb87-65fe92bcae02"}],"id":"3dfdd455-d447-08a6-b3fc-4df23be9bf84","description":"<p>Extraction is the process by which USE (Unified Scriptable Extractor) retrieves data from external locations. <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#extractor\">Read more.</a></p>\n<h4 id=\"the-extractor-object\">The Extractor Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>🔏 immutible</td>\n<td>Required, unique, max 255 chars.</td>\n</tr>\n<tr>\n<td>contents</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Extractor script</td>\n</tr>\n<tr>\n<td>variables</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>Array of Variable Objects</td>\n</tr>\n<tr>\n<td>hash</td>\n<td><em>string</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n<tr>\n<td>last_modified</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"the-variable-object\">The Variable Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>value</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td></td>\n</tr>\n<tr>\n<td>type</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td></td>\n</tr>\n<tr>\n<td>line</td>\n<td>string</td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n<tr>\n<td>comment</td>\n<td>string</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"8f6b32b6-c5da-4279-b9f3-0f94cba293f6","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0ff8aacb-09a4-4f37-b9d4-87e3edaa6406","type":"text/javascript","exec":[""]}}],"_postman_id":"3dfdd455-d447-08a6-b3fc-4df23be9bf84"},{"name":"/transformers","item":[{"name":"Retrieve a list of transformers","event":[{"listen":"test","script":{"id":"0cee35ba-f3a3-4ac7-b3ab-58d39a92dc95","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"b72f7802-907c-40ea-86c4-245457d85991","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"43184ef3-3c88-d6a2-8712-0ca03db7c745","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/transformers","urlObject":{"path":["v1","transformers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"43184ef3-3c88-d6a2-8712-0ca03db7c745"},{"name":"Add a new transformer","event":[{"listen":"test","script":{"id":"99565ff5-b517-4139-8df5-3694a4fa55d4","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.include('Transformer_test');","    pm.expect(response.contents.trim()).to.eql('# script here');","});","","pm.environment.set(\"transformer_name\", response.name);","console.log('SET transformer_name: ' + pm.environment.get(\"transformer_name\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"cfa07a5f-7a4c-4269-aea7-91214ed08360","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"0348f31f-b0e0-c50a-644d-060e6f367baa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Transformer test 7\",\r\n  \"contents\": \"# script here\"\r\n}"},"url":"{{base_url}}/v1/transformers","urlObject":{"path":["v1","transformers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"7c172431-ae42-4d6e-9647-3c4ff47bf577","name":"Add a new transformer","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Transformer test 283\",\r\n  \"contents\": \"# script here\"\r\n}"},"url":"{{base_url}}/v1/transformers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 15:53:47 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 15:53:47 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X99d7ae859bfee38b9ccd03ab94e7e457"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X99d7ae859bfee38b9ccd03ab94e7e457"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-SKAIwKRPZ9TnJ53bYDN6G1VbTYhQDYAz';style-src 'self' 'nonce-SKAIwKRPZ9TnJ53bYDN6G1VbTYhQDYAz';font-src 'self' data:"},{"key":"Request-Id","value":"f04bbeab-35e2-46d8-94b1-ba21a6f080b4"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"Transformer_test_465\",\n    \"contents\": \"# script here\",\n    \"hash\": \"d76e9395d92c0263e8462f7a3aaa4f11cd45df35\",\n    \"last_modified\": \"2022-02-01T15:53:47Z\"\n}"}],"_postman_id":"0348f31f-b0e0-c50a-644d-060e6f367baa"},{"name":"Retrieve a transformer","event":[{"listen":"test","script":{"id":"66c118ec-0e0b-4070-b25a-b6eaf479eeb8","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.eql(pm.environment.get(\"transformer_name\"));","    pm.expect(response.contents.trim()).to.eql('# script here');","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"37ea5f9d-d5bf-4d4d-8ca2-f4db66b5ae08","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"99b2c49e-80e8-50fd-4ca8-34b2d382d44f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/transformers/:transformer_name","urlObject":{"path":["v1","transformers",":transformer_name"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{transformer_name}}","key":"transformer_name"}]}},"response":[{"id":"9d73d938-9147-4f0b-87af-bd504ff8f1a2","name":"Retrieve a transformer","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/transformers/:transformer_name","host":["{{base_url}}"],"path":["v1","transformers",":transformer_name"],"variable":[{"id":"d1c9eb9d-515c-4584-af4c-f6372f9f7e44","key":"transformer_name","value":"{{transformer_name}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:33:22 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:33:22 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X027857f61af915f5292f12a937f44b41"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X027857f61af915f5292f12a937f44b41"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-1x4eaqsvMBwZClaDUSq89SQHWEgBzW3J';style-src 'self' 'nonce-1x4eaqsvMBwZClaDUSq89SQHWEgBzW3J';font-src 'self' data:"},{"key":"Request-Id","value":"5eee3947-4125-4173-90b7-7d84cd02abb8"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"test\",\n    \"contents\": \"# usage data\\r\\nimport usage from test\\r\\noption services = overwrite\\r\\nfinish\\r\\n\\r\\noption services = overwrite\\r\\n\\r\\nservices {\\r\\n    service_type = automatic\\r\\n    description_col = description\\r\\n    category_col = category\\r\\n    instance_col = UniqueID\\r\\n    usages_col = service_name\\r\\n    rate_col = rate\\r\\n    cogs_col = cogs\\r\\n    interval_col  = interval\\r\\n    model_col = model\\r\\n    unit_label_col = unit\\r\\n    consumption_col = quantity\\r\\n}\\r\\n\",\n    \"hash\": \"b46ac2d312397e9343a8f59360f361197ca89273\",\n    \"last_modified\": \"2022-02-04T09:09:16Z\"\n}"}],"_postman_id":"99b2c49e-80e8-50fd-4ca8-34b2d382d44f"},{"name":"Update a transformer","event":[{"listen":"test","script":{"id":"84f21112-259f-4e4f-bc06-c4e128cc46b7","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.name).to.be.a('string');","    pm.expect(response.contents).to.be.a('string');","    pm.expect(response.hash).to.be.a('string');","    pm.expect(response.last_modified).to.be.a('string');","","    pm.expect(response.name).to.eql(pm.environment.get(\"transformer_name\"));","    pm.expect(response.contents.trim()).to.eql('# modified script here');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"e0ae400f-7e85-4183-9f8d-911979104ef4","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"5574ae6f-2c2a-bb16-70e7-0c930b7533b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"contents\": \"# modified script here\"\r\n}"},"url":"{{base_url}}/v1/transformers/{{transformer_name}}","urlObject":{"path":["v1","transformers","{{transformer_name}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5574ae6f-2c2a-bb16-70e7-0c930b7533b4"},{"name":"Run a transformer","event":[{"listen":"test","script":{"id":"41b96714-f0b4-4db3-979e-45cb3f094095","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","console.log(pm.response);","let response = pm.response.text();","","for (let i of responseBody.split('\\n')) {","    if (i[0] === '{') {","        response = JSON.parse(i);","    }","}","","pm.test(\"Response contains output\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response.status).to.be.a('string');","    pm.expect(response.start_time).to.be.a('string');","    pm.expect(response.end_time).to.be.a('string');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"dec78d38-7f57-4c77-857c-3fede934e468","exec":["pm.environment.set(\"date\", \"20170101\");","","const api = eval(pm.globals.get('exivity'))();","api.start()","    .then(api.requireToken)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });"],"type":"text/javascript"}}],"id":"96719165-6a30-500d-6b2d-8421ddf4460f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/transformers/:transformer_name/run?date={{date}}&start_date=&end_date=&limit&break_at&preview=&snapshot_deset&environment_id","urlObject":{"path":["v1","transformers",":transformer_name","run"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Date to run the fransformer for (in <code>YYYY-MM-DD</code> format).</p>\n","type":"text/plain"},"key":"date","value":"{{date}}"},{"description":{"content":"<p>If the transformer should be run for a range of dates, the start date to run the fransformer for (in <code>YYYY-MM-DD</code> format).</p>\n","type":"text/plain"},"key":"start_date","value":""},{"description":{"content":"<p>If the transformer should be run for a range of dates, the end date to run the fransformer for (in <code>YYYY-MM-DD</code> format).</p>\n","type":"text/plain"},"key":"end_date","value":""},{"description":{"content":"<p>Limit the number of records to preview, defaults to <code>10</code>.</p>\n","type":"text/plain"},"key":"limit","value":null},{"description":{"content":"<p>When in preview mode, stop executing the transformer before this line.</p>\n","type":"text/plain"},"key":"break_at","value":null},{"description":{"content":"<p>If set to <code>1</code>, all statements which modify the system will be skipped and the default dataset will be included with the response.</p>\n","type":"text/plain"},"key":"preview","value":""},{"description":{"content":"<p>With preview only  - name of dset to preview. If not selected, default dset will be used.</p>\n","type":"text/plain"},"key":"snapshot_deset","value":null},{"description":{"content":"<p>Environment ID (optional)</p>\n","type":"text/plain"},"key":"environment_id","value":null}],"variable":[{"type":"string","value":"{{transformer_name}}","key":"transformer_name"}]}},"response":[],"_postman_id":"96719165-6a30-500d-6b2d-8421ddf4460f"},{"name":"Delete a transformer","event":[{"listen":"test","script":{"id":"15edb4af-82c9-4a2a-a3e9-f3ffcfd842df","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET transformer_name');","pm.environment.unset(\"transformer_name\");"],"type":"text/javascript"}}],"id":"87fe7c9b-8096-d170-e96c-4f97570f0002","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/transformers/{{transformer_name}}","urlObject":{"path":["v1","transformers","{{transformer_name}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"9f33e986-8602-4048-ac3b-f1ad1e0e2aaf","name":"Delete a transformer","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/transformers/{{transformer_name}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:38:03 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:38:03 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X0deb90e36eed194b117bdd583b7e16d1"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X0deb90e36eed194b117bdd583b7e16d1"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-PxhO5QqkqpupROWRKpVh2W9udAUiaxnF';style-src 'self' 'nonce-PxhO5QqkqpupROWRKpVh2W9udAUiaxnF';font-src 'self' data:"},{"key":"Request-Id","value":"d55ebbc5-d9cf-4400-b23e-32a24f7a248d"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"87fe7c9b-8096-d170-e96c-4f97570f0002"}],"id":"e240c0ea-6e41-612f-3f90-e597022013ca","description":"<p>Exivity documentation: <a href=\"https://docs.exivity.com/data-pipelines/transform\">https://docs.exivity.com/data-pipelines/transform</a></p>\n<h4 id=\"transformer-attributes\">Transformer Attributes</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>string</td>\n</tr>\n<tr>\n<td>contents</td>\n<td>string</td>\n</tr>\n<tr>\n<td>hash</td>\n<td>string</td>\n</tr>\n<tr>\n<td>last_modified</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"fc7e8dbc-90f5-490e-aa89-4aa046047dc3","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"51b55178-e44e-4b85-afad-bc707d336313","type":"text/javascript","exec":[""]}}],"_postman_id":"e240c0ea-6e41-612f-3f90-e597022013ca"},{"name":"/dsets","item":[{"name":"Retrieve a list of datasets","event":[{"listen":"test","script":{"id":"f59b0f92-c0c9-4738-97ce-2f6f9e5881d9","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});","","pm.environment.set(\"dset_id\", response.data[0].id);","console.log('SET dset_id: ' + pm.environment.get(\"dset_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"aadf171d-ae62-42b6-aa44-9e1489156393","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"8ff2a25a-0875-9274-dbbb-074df6f73cc3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/dsets?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","dsets"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>services</code>, <code>reports</code>, <code>metadatadefinition</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"8ff2a25a-0875-9274-dbbb-074df6f73cc3"},{"name":"Retrieve a dataset","event":[{"listen":"test","script":{"id":"780a3220-8642-4e24-8168-eb8fac4de9a8","exec":["console.log('USE dset_id(name): ' + pm.environment.get(\"dset_id\"));","","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('dset');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"dset_id\").toString());","});","","// Attributes","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.earliest_rdf).to.be.a('string');","    pm.expect(response.data.attributes.latest_rdf).to.be.a('string');","    pm.expect(response.data.attributes.ref_count).to.be.a('number');","    pm.expect(response.data.attributes.rdf_detail).to.be.an('array');","    pm.expect(response.data.attributes.columns).to.be.an('array').that.is.not.empty;","});","","pm.test(\"Attribute 'columns' is not empty\", function () {","    pm.expect(response.data.attributes.columns).to.be.an('array').that.is.not.empty;","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"d3f69af2-1e7a-4c7f-ac31-e7311956b242","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"7deb34ca-4cef-1226-13a3-3ed9e32c9aa7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/dsets/:name","urlObject":{"path":["v1","dsets",":name"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{dset_id}}","key":"name"}]}},"response":[],"_postman_id":"7deb34ca-4cef-1226-13a3-3ed9e32c9aa7"},{"name":"Update an dataset","event":[{"listen":"test","script":{"id":"dd186fa1-8b31-4812-bb64-c6d81137dbb0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('dset');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"dset_id\").toString());","});","","// Attributes","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.earliest_rdf).to.be.a('string');","    pm.expect(response.data.attributes.latest_rdf).to.be.a('string');","    pm.expect(response.data.attributes.ref_count).to.be.a('number');","    pm.expect(response.data.attributes.rdf_detail).to.be.an('array');","    pm.expect(response.data.attributes.columns).to.be.an('array').that.is.not.empty;","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"f9fe4455-c025-41ae-a200-bd49f9815f37","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireMetadataDefinition)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"4d5d8450-bcb8-4102-b8bd-bc39b96c9247","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"dset\",\r\n        \"id\": \"{{dset_id}}\",\r\n        \"relationships\": {\r\n            \"metadatadefinition\": {\r\n                \"data\": {\r\n                    \"type\": \"metadatadefinition\",\r\n                    \"id\": \"{{metadatadefinition_id}}\"\r\n                }\r\n            }\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/dsets/:name","urlObject":{"path":["v1","dsets",":name"],"host":["{{base_url}}"],"query":[{"key":"","value":""}],"variable":[{"type":"string","value":"{{dset_id}}","key":"name"}]}},"response":[],"_postman_id":"4d5d8450-bcb8-4102-b8bd-bc39b96c9247"},{"name":"Delete a dataset","event":[{"listen":"prerequest","script":{"id":"933d27cd-4f59-41b1-a818-17dcbd784ba5","exec":["// Prevent actually deleting all of the data","pm.environment.set(\"start\", \"2017-08-25\");","pm.environment.set(\"end\", \"2017-08-25\");"],"type":"text/javascript"}},{"listen":"test","script":{"id":"2ed69b0f-8cf1-4010-b29f-1e5f50c9cc81","exec":["// This test doesn't delete the whole dset, just data between given dates.","console.log('USE dset_id(name): ' + pm.environment.get(\"dset_id\"));","console.log('USE start: ' + pm.environment.get(\"start\"));","console.log('USE end: ' + pm.environment.get(\"end\"));","","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('dset');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"dset_id\").toString());","});","","pm.test(\"Response contains correct attributes\", function () {","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.earliest_rdf).to.be.a('string');","    pm.expect(response.data.attributes.latest_rdf).to.be.a('string');","    pm.expect(response.data.attributes.ref_count).to.be.a('number');","    pm.expect(response.data.attributes.rdf_detail).to.be.an('array');","    pm.expect(response.data.attributes.rdf_detail).to.be.of.length(2);","    pm.expect(response.data.attributes.columns).to.be.an('array');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"4d4f2e89-e499-46ce-afca-ec88b7692b8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/dsets/:name?start={{start}}&end={{end}}","urlObject":{"path":["v1","dsets",":name"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The start of the date range (inclusive) you want to delete from the dataset. If not specified, use the first date of the dataset.</p>\n","type":"text/plain"},"key":"start","value":"{{start}}"},{"description":{"content":"<p>The end of the date range (inclusive) you want to delete from the dataset. If not specified, use the last date of the dataset.</p>\n","type":"text/plain"},"key":"end","value":"{{end}}"}],"variable":[{"type":"string","value":"{{dset_id}}","key":"name"}]}},"response":[],"_postman_id":"4d4f2e89-e499-46ce-afca-ec88b7692b8b"}],"id":"6f25717a-cc68-0898-4ab6-f1b70f89380b","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"aa653abe-06ac-435b-bfd8-5a2b813821d9","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"55a0217d-0a48-4e26-bcb5-5a1099aad48e","type":"text/javascript","exec":[""]}}],"_postman_id":"6f25717a-cc68-0898-4ab6-f1b70f89380b","description":""},{"name":"/file","item":[{"name":"Upload a file","event":[{"listen":"test","script":{"id":"b781198a-08aa-44a6-8421-e2ffe7e2b12d","exec":["// Only test Unprocessable Entity for now, as we're not actually uploading a file","pm.test(\"Status code is 422\", function () {","    pm.response.to.have.status(422);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains error\", function () {","    pm.expect(response.errors).to.be.an('array');","    pm.expect(response.errors[0]).to.be.an('object');","    pm.expect(response.errors[0].detail).to.be.a('string');","    pm.expect(response.errors[0].detail).to.eql('The file field is required.');","});"],"type":"text/javascript"}}],"id":"837072b6-3248-514b-bf2f-3e9d668198ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"file","description":"<p>File to be uploaded</p>\n","type":"file","value":null},{"key":"group","value":"","description":"<p>Optional parameter to specify group (default=generic)</p>\n","type":"text"},{"key":"date","value":"","description":"<p>Optional parameter to specify date in YYYY-MM-DD format (default=current date)</p>\n","type":"text"},{"key":"sequence","value":"","description":"<p>Optional parameter to specify sequence (default=1 or auto incrementing if current sequence is already in use)</p>\n","type":"text"}]},"url":"{{base_url}}/v1/file","description":"<p>Only the following file types are accepted:</p>\n<ul>\n<li>csv</li>\n<li>txt</li>\n<li>json</li>\n<li>xml</li>\n</ul>\n<p>Uploaded files are stored as <code>%EXIVITY_HOME_PATH%/import/[group]/[yyyy]/[mm]/[dd]_uploaded_[sequence].[extension]</code>, where <em>sequence</em> is a 3 characters long numberic string with padded zeros (e.g. <code>001</code> or <code>026</code>).</p>\n<p><em>Note: starting with Exivity v3.0.0, this endpoint will no longer include the <code>/import/</code> prefix in the returned JSON response.</em></p>\n","urlObject":{"path":["v1","file"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"bf7f56f8-5052-4f02-af00-f8c97ada4ebb","name":"Upload a file","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"file","description":"File to be uploaded","type":"file","src":"/C:/Users/aine/OneDrive/Documents/MyFile.txt"},{"key":"group","value":"","description":"Optional parameter to specify group (default=generic)","type":"text"},{"key":"date","value":"","description":"Optional parameter to specify date in YYYY-MM-DD format (default=current date)","type":"text"},{"key":"sequence","value":"","description":"Optional parameter to specify sequence (default=1 or auto incrementing if current sequence is already in use)","type":"text"}]},"url":"{{base_url}}/v1/file"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Thu, 02 Jun 2022 14:24:50 GMT"},{"key":"Date","value":"Thu, 02 Jun 2022 14:24:50 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X365cdf2ad1db92de04da287ab112e77a"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X365cdf2ad1db92de04da287ab112e77a"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-DFpgcrIqVXHLOadu2ZbbB8aTm8MLwvT2';style-src 'self' 'nonce-DFpgcrIqVXHLOadu2ZbbB8aTm8MLwvT2';font-src 'self' data:"},{"key":"Request-Id","value":"cda7e03a-e1c7-470c-9a65-92155220f0ad"}],"cookie":[],"responseTime":null,"body":"{\n    \"filename\": \"/generic/2022/06/02_uploaded_001.txt\"\n}"}],"_postman_id":"837072b6-3248-514b-bf2f-3e9d668198ae"},{"name":"Upload a file into a folder","event":[{"listen":"test","script":{"id":"b781198a-08aa-44a6-8421-e2ffe7e2b12d","exec":["// Can't upload a file via binary, so should get an error","pm.test(\"Status code is 400\", function () {","    pm.response.to.have.status(400);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains error\", function () {","    pm.expect(response.errors).to.be.an('array');","});","","pm.test(\"Error has title and detail\", function () {","    pm.expect(response.errors[0].title).to.be.eql('InvalidRequestException');","    pm.expect(response.errors[0].detail).to.be.eql('No content provided');","});",""],"type":"text/javascript"}}],"id":"2cd6e6c4-afdc-4947-b7c5-9cab472682c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"file","file":{}},"url":"{{base_url}}/v1/file/a.txt","description":"<p>Only the following file types are accepted:</p>\n<ul>\n<li>csv</li>\n<li>txt</li>\n<li>json</li>\n<li>xml</li>\n</ul>\n<p>Uploaded files are stored as <code>%EXIVITY_HOME_PATH%/import/[path]</code>, where the <code>path</code> is derived from the request URL. Existing files will be overwritten.</p>\n","urlObject":{"path":["v1","file","a.txt"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2cd6e6c4-afdc-4947-b7c5-9cab472682c9"},{"name":"List files in folder","event":[{"listen":"test","script":{"id":"b781198a-08aa-44a6-8421-e2ffe7e2b12d","exec":["// Only test Unprocessable Entity for now, as we're not actually uploading a file","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"3e829aa7-388a-4913-8b68-41e7b73c6433","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/file/:folder","description":"<p>List the files in a given folder.<br />Example:</p>\n<ul>\n<li>/v1/file/generic</li>\n<li>/v1/file/generic/2023</li>\n</ul>\n<p>All files are stored in the <code>%EXIVITY_HOME_PATH%/import</code> folder. So <strong>/v1/file/generic</strong> would return the files from <code>%EXIVITY_HOME_PATH%/import/generic</code>.</p>\n","urlObject":{"path":["v1","file",":folder"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>Folder path</p>\n","type":"text/plain"},"type":"string","value":"","key":"folder"}]}},"response":[{"id":"04a13e9c-47ee-4d2c-8378-2c900725286e","name":"List files in specific folder","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/file/generic/2023/06"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Thu, 01 Jun 2023 10:28:22 GMT"},{"key":"Date","value":"Thu, 01 Jun 2023 10:28:21 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.2.6"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xa27a8d61715227559d70d17795dd716e"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xa27a8d61715227559d70d17795dd716e"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-dLpwQNl8MwCnAHrwG3Y9sNoVgVn3FWxK';style-src 'self' 'nonce-dLpwQNl8MwCnAHrwG3Y9sNoVgVn3FWxK';font-src 'self' data:"},{"key":"Request-Id","value":"c26fc692-8bb4-490d-a8ea-06d3f3f7a44d"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"file\",\n            \"name\": \"01_uploaded_001.txt\",\n            \"path\": \"/generic/2023/06\"\n        }\n    ]\n}"},{"id":"c322899a-0fde-4472-b33c-eededf712dc2","name":"List files in root folder","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/file/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Thu, 01 Jun 2023 10:29:42 GMT"},{"key":"Date","value":"Thu, 01 Jun 2023 10:29:42 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.2.6"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X62560889c14934e994108c9e4fa60da5"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X62560889c14934e994108c9e4fa60da5"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-Nv5CKCaXRiJedbcxhxXU7pMEJf4irnwT';style-src 'self' 'nonce-Nv5CKCaXRiJedbcxhxXU7pMEJf4irnwT';font-src 'self' data:"},{"key":"Request-Id","value":"a99f8069-f6bb-4d51-8da8-20358e12c9c6"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"folder\",\n            \"name\": \"generic\",\n            \"path\": \"/\",\n            \"children\": [\n                {\n                    \"type\": \"folder\",\n                    \"name\": \"2023\",\n                    \"path\": \"/generic\",\n                    \"children\": [\n                        {\n                            \"type\": \"folder\",\n                            \"name\": \"06\",\n                            \"path\": \"/generic/2023\",\n                            \"children\": [\n                                {\n                                    \"type\": \"file\",\n                                    \"name\": \"01_uploaded_001.txt\",\n                                    \"path\": \"/generic/2023/06\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"type\": \"folder\",\n            \"name\": \"temp\",\n            \"path\": \"/\",\n            \"children\": [\n                {\n                    \"type\": \"folder\",\n                    \"name\": \"2023\",\n                    \"path\": \"/temp\",\n                    \"children\": [\n                        {\n                            \"type\": \"folder\",\n                            \"name\": \"06\",\n                            \"path\": \"/temp/2023\",\n                            \"children\": [\n                                {\n                                    \"type\": \"file\",\n                                    \"name\": \"01_uploaded_001.txt\",\n                                    \"path\": \"/temp/2023/06\"\n                                },\n                                {\n                                    \"type\": \"file\",\n                                    \"name\": \"01_uploaded_002.txt\",\n                                    \"path\": \"/temp/2023/06\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"3e829aa7-388a-4913-8b68-41e7b73c6433"},{"name":"Retrieve file","event":[{"listen":"test","script":{"id":"b781198a-08aa-44a6-8421-e2ffe7e2b12d","exec":["// Only test Unprocessable Entity for now, as we're not actually uploading a file","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","// const response = pm.response.json();","","// pm.test(\"Response contains data\", function () {","//     pm.expect(response.data).to.be.an('array');","// });"],"type":"text/javascript"}}],"id":"7aba0a55-55ff-4593-885e-a9880b586d4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/file/:folder/:filename","urlObject":{"path":["v1","file",":folder",":filename"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"","key":"folder"},{"type":"string","value":"","key":"filename"}]}},"response":[],"_postman_id":"7aba0a55-55ff-4593-885e-a9880b586d4d"},{"name":"Delete a file","event":[{"listen":"test","script":{"id":"b781198a-08aa-44a6-8421-e2ffe7e2b12d","exec":["// Since we can't upload a file, it's a bit hard to delete it","// This test tried to delete a non-existant file. We expect a error back.","pm.test(\"Status code is 404\", function () {","    pm.response.to.have.status(404);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains error\", function () {","    pm.expect(response.errors).to.be.an('array');","});","","pm.test(\"Error has title and detail\", function () {","    pm.expect(response.errors[0].title).to.be.eql('NotFoundException');","    pm.expect(response.errors[0].detail).to.be.eql('File name missing');","});",""],"type":"text/javascript"}}],"id":"400853c4-f528-458b-bc7e-f5a5cb264587","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/file/:folder/:filename","urlObject":{"path":["v1","file",":folder",":filename"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"","key":"folder"},{"type":"string","value":"","key":"filename"}]}},"response":[],"_postman_id":"400853c4-f528-458b-bc7e-f5a5cb264587"}],"id":"7d48bdde-6981-8dd1-7e2f-510d938ad22f","description":"<p>⚡ <strong>Not JSON:API compliant</strong> ⚡</p>\n<p>Atomic support: ❌</p>\n<p>This endpoint lets you work with files in the <a href=\"https://docs.exivity.com/getting%20started/installation/1%20node/directory%20structure/#home-directory\">Exivity home directory</a>. Currently, only uploading files is supported.</p>\n<p><em>Note: starting with Exivity v3.0.0, the response structure for all endpoints will be streamlined.</em></p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"64c27581-239e-446d-8222-6aa46589f038","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e60aa72b-d37a-479d-a7c4-9a5d5b4e4f9a","type":"text/javascript","exec":[""]}}],"_postman_id":"7d48bdde-6981-8dd1-7e2f-510d938ad22f"},{"name":"/metadatadefinitions","item":[{"name":"Retrieve a list of metadata definitions","event":[{"listen":"test","script":{"id":"0fe73c41-f52e-40fe-b9ca-b44fa9df95f3","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});",""],"type":"text/javascript"}}],"id":"800e131a-b629-42bf-a81c-1012edfc613a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/metadatadefinitions?page[limit]&page[offset]&sort&filter[name]=&include=","urlObject":{"path":["v1","metadatadefinitions"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[name]","value":""},{"description":{"content":"<p>Include additional related resources. Possible values: <code>metadata</code>, <code>datasets</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"4435b868-b456-415c-a4cb-19c673fe1de0","name":"Retrieve a list of metadata definitions","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/metadatadefinitions?page[limit]&page[offset]&sort&filter[name]=&include=","host":["{{base_url}}"],"path":["v1","metadatadefinitions"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[name]","value":"","description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `metadata`, `datasets`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Mon, 15 Jul 2024 09:56:47 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X4576a48e0a14ee70f3cc079824ddcdbc"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-IRnTCamOTjPy9TS3VsGswqn6tWvcad9d';style-src 'self' 'nonce-IRnTCamOTjPy9TS3VsGswqn6tWvcad9d';font-src 'self' data:"},{"key":"Request-Id","value":"0afc9b7e-4520-43e9-bff5-b3bd6c491b57"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"9\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.9679217288315949\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/9\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/9/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/9/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/9/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/9/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"10\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.9263474222944448\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/10\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/10/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/10/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/10/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/10/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"2\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.011449516709517882\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/2\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/2/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/2/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/2/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/2/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"3\",\n            \"attributes\": {\n                \"name\": \"Test definition\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/3\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/3/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/3/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/3/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/3/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"4\",\n            \"attributes\": {\n                \"name\": \"name\",\n                \"fields\": [\n                    {\n                        \"name\": \"name\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/4\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/4/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/4/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/4/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/4/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"5\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.8996327930486359\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/5\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/5/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/5/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/5/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/5/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"6\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.9558469843650974\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/6\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/6/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/6/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/6/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/6/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"7\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.7484430424438153\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/7\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/7/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/7/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/7/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/7/datasets\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"metadatadefinition\",\n            \"id\": \"8\",\n            \"attributes\": {\n                \"name\": \"Test definition 0.532293942049471\",\n                \"fields\": [\n                    {\n                        \"name\": \"country\",\n                        \"type\": \"string\"\n                    }\n                ]\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/metadatadefinitions/8\"\n            },\n            \"relationships\": {\n                \"metadata\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/8/relationships/metadata\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/8/metadata\"\n                    }\n                },\n                \"datasets\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/metadatadefinitions/8/relationships/datasets\",\n                        \"related\": \"http://localhost:8012/v1/metadatadefinitions/8/datasets\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 9,\n            \"count\": 9,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/metadatadefinitions?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/metadatadefinitions?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/metadatadefinitions?page%5Blimit%5D=&sort=&filter%5Bname%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"800e131a-b629-42bf-a81c-1012edfc613a"},{"name":"Add a new metadata definition","event":[{"listen":"test","script":{"id":"b7f17b37-dd6f-4163-94a9-8bafae73f956","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('metadatadefinition');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"name\",","        \"fields\"","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","","pm.environment.set(\"metadatadefinition_id\", response.data.id);","console.log('SET metadatadefinition_id: ' + pm.environment.get(\"metadatadefinition_id\"));"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"3b3d6ede-cc81-45de-91dc-b8b44febe9fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"metadatadefinition\",\r\n    \"attributes\": {\r\n      \"name\": \"Comprehensive User Profile\",\r\n      \"fields\": [\r\n        {\r\n          \"name\": \"email\",\r\n          \"type\": \"string\",\r\n          \"validate\": \"/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$/\"\r\n        },\r\n        {\r\n          \"name\": \"department\",\r\n          \"type\": \"list\",\r\n          \"list\": [\"engineering\", \"sales\", \"marketing\", \"finance\", \"operations\"]\r\n        },\r\n        {\r\n          \"name\": \"cost_center\",\r\n          \"type\": \"numeric\"\r\n        },\r\n        {\r\n          \"name\": \"start_date\",\r\n          \"type\": \"date\"\r\n        },\r\n        {\r\n          \"name\": \"user_groups\",\r\n          \"type\": \"string_array\"\r\n        },\r\n        {\r\n          \"name\": \"tags\",\r\n          \"type\": \"string_array\",\r\n          \"validate\": \"/^[a-z0-9-]+$/\"\r\n        }\r\n      ]\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/metadatadefinitions","urlObject":{"path":["v1","metadatadefinitions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"dfad9762-cd1d-4de0-bc1b-e2a6024eb169","name":"SAML User Attributes","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"metadatadefinition\",\r\n    \"attributes\": {\r\n      \"name\": \"SAML User Attributes\",\r\n      \"fields\": [\r\n        {\r\n          \"name\": \"user_groups\",\r\n          \"type\": \"string_array\",\r\n          \"validate\": \"/^[a-zA-Z0-9_-]+$/\"\r\n        },\r\n        {\r\n          \"name\": \"roles\",\r\n          \"type\": \"string_array\"\r\n        }\r\n      ]\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/metadatadefinitions"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Location","value":"http://localhost:8012/v1/MetadataDefinition/MetadataDefinitions"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 09 Dec 2025 13:22:01 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"01KC1MDAXDHHDWD0HWFRFJTB4P"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"01KC1MDAXDHHDWD0HWFRFJTB4P"},{"key":"ETag","value":"\"44f8f91489a936c9d6adc421560c19b9\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';font-src 'self' data:;form-action 'self';frame-src 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-PmtFvoQtWQvHjmomZuKQly5uyCkWFP1A';style-src 'self' 'nonce-PmtFvoQtWQvHjmomZuKQly5uyCkWFP1A'"},{"key":"Request-Id","value":"69a1d2db-f547-4b93-bed4-bf0ed3595e82"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"metadatadefinition\",\n        \"id\": \"3\",\n        \"attributes\": {\n            \"name\": \"SAML User Attributes\",\n            \"fields\": [\n                {\n                    \"name\": \"user_groups\",\n                    \"type\": \"string_array\",\n                    \"validate\": \"/^[a-zA-Z0-9_-]+$/\"\n                },\n                {\n                    \"name\": \"roles\",\n                    \"type\": \"string_array\"\n                }\n            ]\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/metadatadefinitions/3\"\n        },\n        \"relationships\": {\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadatadefinitions/3/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/metadatadefinitions/3/metadata\"\n                }\n            },\n            \"datasets\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadatadefinitions/3/relationships/datasets\",\n                    \"related\": \"http://localhost:8012/v1/metadatadefinitions/3/datasets\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"3b3d6ede-cc81-45de-91dc-b8b44febe9fe"},{"name":"Retrieve a metadata definition","event":[{"listen":"test","script":{"id":"7778e902-8e93-4f8c-9f0b-fe62a0dbf6c7","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('metadatadefinition');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"metadatadefinition_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"name\",","        \"fields\"","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"9da3b238-8a0d-4b2f-a042-29548e2ebcb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/metadatadefinitions/{{metadatadefinition_id}}/?include","urlObject":{"path":["v1","metadatadefinitions","{{metadatadefinition_id}}",""],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources.</p>\n","type":"text/plain"},"key":"include","value":null}],"variable":[]}},"response":[{"id":"31590325-8854-4bc0-b8d3-05b02a1cc336","name":"Retrieve a metadata definition","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/metadatadefinitions/{{metadatadefinition_id}}/?include","host":["{{base_url}}"],"path":["v1","metadatadefinitions","{{metadatadefinition_id}}",""],"query":[{"key":"include","value":null,"description":"Include additional related resources."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:40:42 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:40:42 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xdc8a5a604634bc6ca3f98917f5b7e5d6"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-HX1KoKuxsFcwIrwNsTNLcNTDn9hXxdWT';style-src 'self' 'nonce-HX1KoKuxsFcwIrwNsTNLcNTDn9hXxdWT';font-src 'self' data:"},{"key":"Request-Id","value":"20d378f7-ff64-4908-8b35-5cb38deba070"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"metadatadefinition\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"name\": \"Test definition\",\n            \"fields\": [\n                {\n                    \"name\": \"country\",\n                    \"type\": \"string\"\n                }\n            ]\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/metadatadefinitions/1\"\n        },\n        \"relationships\": {\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadatadefinitions/1/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/metadatadefinitions/1/metadata\"\n                }\n            },\n            \"datasets\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadatadefinitions/1/relationships/datasets\",\n                    \"related\": \"http://localhost:8012/v1/metadatadefinitions/1/datasets\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"9da3b238-8a0d-4b2f-a042-29548e2ebcb0"},{"name":"Update a metadata definition","event":[{"listen":"test","script":{"id":"dd186fa1-8b31-4812-bb64-c6d81137dbb0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('metadatadefinition');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"metadatadefinition_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"name\",","        \"fields\"","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"97b59b2f-8e87-432e-b29c-d41eba7ccc27","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"metadatadefinition\",\r\n\t\t\"id\": \"{{metadatadefinition_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"Modified test definition - 776b552d-1157-4d55-b5ce-e7619fe6e9f4\",\r\n\t\t\t\"fields\": [\r\n\t\t\t\t{\r\n\t\t\t        \"name\": \"country\",\r\n\t\t\t\t    \"type\": \"string\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n                    \"name\": \"city\",\r\n\t\t\t\t    \"type\": \"string\"\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/metadatadefinitions/:metadata_definition_id","urlObject":{"path":["v1","metadatadefinitions",":metadata_definition_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{metadatadefinition_id}}","key":"metadata_definition_id"}]}},"response":[{"id":"cfaf2b52-2d0e-400c-90e2-a7db952da293","name":"Update a metadata definition","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"metadatadefinition\",\r\n\t\t\"id\": \"{{metadatadefinition_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"Modified test definition - 638920a9-2e39-41a5-b6f6-d237f6cd900c\",\r\n\t\t\t\"fields\": [\r\n\t\t\t\t{\r\n\t\t\t        \"name\": \"country\",\r\n\t\t\t\t    \"type\": \"string\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n                    \"name\": \"city\",\r\n\t\t\t\t    \"type\": \"string\"\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t}\r\n}"},"url":{"raw":"{{base_url}}/v1/metadatadefinitions/:metadata_definition_id","host":["{{base_url}}"],"path":["v1","metadatadefinitions",":metadata_definition_id"],"variable":[{"key":"metadata_definition_id","value":"{{metadatadefinition_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 05 Sep 2023 11:39:51 GMT"},{"key":"Date","value":"Tue, 05 Sep 2023 11:39:51 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xbec6399d6191b7c2c2b98ba3aa9e4628"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-BsqM6lmC8Svr7UZJdWBVj9hTIesxBf30';style-src 'self' 'nonce-BsqM6lmC8Svr7UZJdWBVj9hTIesxBf30';font-src 'self' data:"},{"key":"Request-Id","value":"d0956825-9c46-4a0f-9bd3-b41321382212"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"metadatadefinition\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"name\": \"Modified test definition - c9bb0f79-c9fb-41f5-8f5b-2d22b614063f\",\n            \"fields\": [\n                {\n                    \"name\": \"country\",\n                    \"type\": \"string\"\n                },\n                {\n                    \"name\": \"city\",\n                    \"type\": \"string\"\n                }\n            ]\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/metadatadefinitions/2\"\n        },\n        \"relationships\": {\n            \"metadata\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadatadefinitions/2/relationships/metadata\",\n                    \"related\": \"http://localhost:8012/v1/metadatadefinitions/2/metadata\"\n                }\n            },\n            \"datasets\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadatadefinitions/2/relationships/datasets\",\n                    \"related\": \"http://localhost:8012/v1/metadatadefinitions/2/datasets\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"97b59b2f-8e87-432e-b29c-d41eba7ccc27"},{"name":"Delete a metadata definition","event":[{"listen":"test","script":{"id":"ae85860e-f9a6-48a6-8cf7-1b62c6e124b2","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET metadatadefinition_id');","pm.environment.unset(\"metadatadefinition_id\");"],"type":"text/javascript"}}],"id":"c90215de-b60d-473d-babd-f802be703ba1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/metadatadefinitions/{{metadatadefinition_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","metadatadefinitions","{{metadatadefinition_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1f268ea1-f81b-4c2d-bbd5-7dfa0c2ac582","name":"Delete a metadata definition","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/metadatadefinitions/{{metadatadefinition_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 09:40:54 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 09:40:54 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X139dbee20c0bda4b2ee56c281a7d4b54"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X139dbee20c0bda4b2ee56c281a7d4b54"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-HCg5ycOXmMkOqbbzSPoiYqOuJJ3ojKL7';style-src 'self' 'nonce-HCg5ycOXmMkOqbbzSPoiYqOuJJ3ojKL7';font-src 'self' data:"},{"key":"Request-Id","value":"dd52f7e2-ae6c-4c9b-b710-ebf74d584d3f"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"c90215de-b60d-473d-babd-f802be703ba1"}],"id":"97340f18-983c-411e-8daa-196dfb35ad5f","description":"<p>Metadata Definitions act as schemas that define the structure and validation rules for metadata. They specify what fields are available, their data types (string, numeric, date, array, etc.), and any validation constraints. Once a metadata definition is created, you can attach metadata instances to accounts or services that conform to that definition's structure.</p>\n<p><strong>Use cases:</strong></p>\n<ul>\n<li><p>Store SAML user groups or roles as arrays</p>\n</li>\n<li><p>Track custom attributes like cost centers, departments, or tags</p>\n</li>\n<li><p>Enforce data validation with regex patterns or predefined lists</p>\n</li>\n</ul>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#metadatadefinition\">https://docs.exivity.com/architecture%20concepts/glossary/#metadatadefinition</a></p>\n<h2 id=\"the-metadata-definition-object\">The Metadata Definition Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required, unique</td>\n</tr>\n<tr>\n<td>fields</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>Required, array of <strong>Field Objects</strong> (see below)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Field Object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required, unique</td>\n</tr>\n<tr>\n<td>type</td>\n<td><em>enum</em> (<code>string</code>, <code>list</code>, <code>numeric</code>, <code>date</code>, <code>string_array</code>)</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>list</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=list</code></td>\n</tr>\n<tr>\n<td>validate</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Optional regex pattern. For <code>type=string</code>, validates the entire value. For <code>type=array_string</code>, validates each item in the array individually</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Field Types</strong></p>\n<ul>\n<li><p><code>string</code> - Single string value</p>\n</li>\n<li><p><code>list</code> - Single value from a predefined list of options (requires <code>list</code> attribute)</p>\n</li>\n<li><p><code>numeric</code> - Numeric value</p>\n</li>\n<li><p><code>date</code> - Date value</p>\n</li>\n<li><p><code>string_array</code> - Array of strings. Useful for multi-valued attributes like SAML user groups. If a <code>validate</code> regex is provided, it applies to each individual item in the array</p>\n</li>\n</ul>\n<p><strong>Examples</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// String field with regex validation\n{\n  \"name\": \"email\",\n  \"type\": \"string\",\n  \"validate\": \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\"\n}\n// String array field without validation\n{\n  \"name\": \"user_groups\",\n  \"type\": \"string_array\"\n}\n// String array field with regex validation (each item must match)\n{\n  \"name\": \"tags\",\n  \"type\": \"string_array\",\n  \"validate\": \"^[a-z0-9-]+$\"\n}\n// List field\n{\n  \"name\": \"department\",\n  \"type\": \"list\",\n  \"list\": [\"engineering\", \"sales\", \"marketing\"]\n}\n\n</code></pre>\n<p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>metadata</td>\n<td>hasMany</td>\n<td>metadata</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>datasets</td>\n<td>hasMany</td>\n<td>datasets</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"the-metadata-definition-object-1\">The Metadata Definition Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>required, string, unique</td>\n</tr>\n<tr>\n<td>fields</td>\n<td>required, array of Field Objects</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"the-field-object\"><strong>The Field Object</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>required, string</td>\n</tr>\n<tr>\n<td>type</td>\n<td>required, in: string, list, numeric, date, string_array</td>\n</tr>\n<tr>\n<td>list</td>\n<td>required if type=list</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"caf2ab7a-dd0d-4548-96e4-67dbfc493a83","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"c177daf4-85d6-4d3a-a699-4784c5a221ec","type":"text/javascript","exec":[""]}}],"_postman_id":"97340f18-983c-411e-8daa-196dfb35ad5f"},{"name":"/metadata","item":[{"name":"Add new metadata","event":[{"listen":"test","script":{"id":"b7f17b37-dd6f-4163-94a9-8bafae73f956","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('metadata');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"values\"","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"metadata_id\", response.data.id);","console.log('SET metadata_id: ' + pm.environment.get(\"metadata_id\"));",""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"0a48de75-a37d-4b1a-9c90-c5dc4af1cf64","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireMetadataDefinition)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r","    "],"type":"text/javascript","packages":{}}}],"id":"346834f6-1a83-4b67-af11-eda964cf277e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"metadata\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"values\": {\r\n\t\t\t\t\"country\": \"The Netherlands\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"definition\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"metadatadefinition\",\r\n\t\t\t\t\t\"id\": \"{{metadatadefinition_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/metadata","urlObject":{"path":["v1","metadata"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"a2cf454a-e152-4b11-b1e3-9ea76ea02730","name":"Add new metadata","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"metadata\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"values\": {\r\n\t\t\t\t\"country\": \"The Netherlands\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"definition\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"metadatadefinition\",\r\n\t\t\t\t\t\"id\": \"1\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/metadata"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 01 Feb 2022 15:53:23 GMT"},{"key":"Date","value":"Tue, 01 Feb 2022 15:53:23 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Metadata/Metadatas"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X46f67613b6e44fd564ef6becd22f3e84"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-LtMFNMZ6vC0ljOsq5At3GR6f80gdp3cs';style-src 'self' 'nonce-LtMFNMZ6vC0ljOsq5At3GR6f80gdp3cs';font-src 'self' data:"},{"key":"Request-Id","value":"d75207f6-2909-4a20-99fd-40a1ff1d78eb"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"metadata\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"values\": {\n                \"country\": \"The Netherlands\"\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/metadata/1\"\n        },\n        \"relationships\": {\n            \"accounts\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/1/relationships/accounts\",\n                    \"related\": \"http://localhost:8012/v1/metadata/1/accounts\"\n                }\n            },\n            \"definition\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/1/relationships/definition\",\n                    \"related\": \"http://localhost:8012/v1/metadata/1/definition\"\n                }\n            },\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/1/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/metadata/1/services\"\n                }\n            }\n        }\n    }\n}"},{"id":"55fa3109-7120-47e4-8e00-a141df554c05","name":"Add new metadata (string_array)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"metadata\",\r\n    \"attributes\": {\r\n      \"values\": {\r\n        \"user_groups\": [\"admin\", \"developers\", \"qa-team\"]\r\n      }\r\n    },\r\n    \"relationships\": {\r\n      \"definition\": {\r\n        \"data\": {\r\n          \"type\": \"metadatadefinition\",\r\n          \"id\": \"4\"\r\n        }\r\n      }\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/metadata"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Location","value":"http://localhost:8012/v1/Metadata/Metadatas"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Mon, 08 Dec 2025 12:15:26 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"01KBYY6NZ0BKHG2CWF2E71MVC5"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"01KBYY6NZ0BKHG2CWF2E71MVC5"},{"key":"ETag","value":"\"917d30fa9f84fb53d9f467a69986cc7d\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';font-src 'self' data:;form-action 'self';frame-src 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-Noh3EK3RD7nhvEAdifhoX6rNcEkTiAQ6';style-src 'self' 'nonce-Noh3EK3RD7nhvEAdifhoX6rNcEkTiAQ6'"},{"key":"Request-Id","value":"af2a5562-3647-4605-b4b1-e91c28b11335"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"metadata\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"values\": {\n                \"user_groups\": [\n                    \"admin\",\n                    \"developers\",\n                    \"qa-team\"\n                ]\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/metadata/2\"\n        },\n        \"relationships\": {\n            \"accounts\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/2/relationships/accounts\",\n                    \"related\": \"http://localhost:8012/v1/metadata/2/accounts\"\n                }\n            },\n            \"definition\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/2/relationships/definition\",\n                    \"related\": \"http://localhost:8012/v1/metadata/2/definition\"\n                }\n            },\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/2/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/metadata/2/services\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"346834f6-1a83-4b67-af11-eda964cf277e"},{"name":"Retrieve a list of metadata","event":[{"listen":"test","script":{"id":"0fe73c41-f52e-40fe-b9ca-b44fa9df95f3","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"2c263738-df4c-40c2-af30-f6bd5dc18ca5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/metadata?page[limit]&page[offset]&sort&filter[name]=&include=","urlObject":{"path":["v1","metadata"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[name]","value":""},{"description":{"content":"<p>Include additional related resources. Possible values: <code>definition</code>, <code>accounts</code>, <code>services</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"2c263738-df4c-40c2-af30-f6bd5dc18ca5"},{"name":"Retrieve metadata","event":[{"listen":"test","script":{"id":"7778e902-8e93-4f8c-9f0b-fe62a0dbf6c7","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });","","// const response = pm.response.json();","","// pm.test(\"Response contains data\", function () {","//     pm.expect(response.data).to.be.an('object');","//     pm.expect(response.data.type).to.eql('metadata');","//     pm.expect(response.data.id).to.eql(pm.environment.get(\"metadata_id\").toString());","//     pm.expect(response.data.attributes).to.be.an('object');","//     pm.expect(response.data.attributes).to.have.keys([","// \t\t\"values\"","// \t]);","// });","","// pm.test(\"Response contains data.links\", function () {","//     pm.expect(response.data.links).to.be.an('object');","// });"],"type":"text/javascript"}}],"id":"9f872757-3764-4088-99dd-15a20493418f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/metadata/{{metadata_id}}/?include=","urlObject":{"path":["v1","metadata","{{metadata_id}}",""],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"8935de25-50f1-4b69-9e18-c056ba0ae8f9","name":"Retrieve metadata","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/metadata/{{metadata_id}}/?include=","host":["{{base_url}}"],"path":["v1","metadata","{{metadata_id}}",""],"query":[{"key":"include","value":"","description":"Include additional related resources."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:14:50 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:14:50 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X66262b81b794a2c4746d392d58ba5d45"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-NnLDJjSh3VHljBQuaGf1YQlI6lFlhJQP';style-src 'self' 'nonce-NnLDJjSh3VHljBQuaGf1YQlI6lFlhJQP';font-src 'self' data:"},{"key":"Request-Id","value":"c12eaef4-f368-43c5-9c8a-7dd29f6892f4"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"metadata\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"values\": {\n                \"country\": \"The Netherlands\"\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/metadata/2\"\n        },\n        \"relationships\": {\n            \"accounts\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/2/relationships/accounts\",\n                    \"related\": \"http://localhost:8012/v1/metadata/2/accounts\"\n                }\n            },\n            \"definition\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/2/relationships/definition\",\n                    \"related\": \"http://localhost:8012/v1/metadata/2/definition\"\n                }\n            },\n            \"services\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/metadata/2/relationships/services\",\n                    \"related\": \"http://localhost:8012/v1/metadata/2/services\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"9f872757-3764-4088-99dd-15a20493418f"},{"name":"Update metadata","event":[{"listen":"test","script":{"id":"dd186fa1-8b31-4812-bb64-c6d81137dbb0","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('metadata');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"metadata_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","\t\t\"values\"","\t]);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"91f68337-d759-40bc-9951-84ff231886b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"metadata\",\r\n\t\t\"id\": \"{{metadata_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"values\": {\r\n\t\t\t\t\"country\": \"The Netherlands\",\r\n\t\t\t\t\"city\": \"Zeist\"\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/metadata/{{metadata_id}}","urlObject":{"path":["v1","metadata","{{metadata_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"91f68337-d759-40bc-9951-84ff231886b9"},{"name":"Delete metadata","event":[{"listen":"test","script":{"id":"ae85860e-f9a6-48a6-8cf7-1b62c6e124b2","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET metadata_id');","pm.environment.unset(\"metadata_id\");","","// postman.setNextRequest(\"Delete a metadata definition\");"],"type":"text/javascript"}}],"id":"754ffb3f-a8b7-46b3-8d13-8c37a625f4a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/metadata/{{metadata_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","metadata","{{metadata_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"53e728be-01fb-4ab4-ab92-5d0a2f154749","name":"Delete metadata","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/metadata/{{metadata_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:14:59 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:14:59 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xb3c42d2f6ee17b42e0ceed441e5bcfe2"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xb3c42d2f6ee17b42e0ceed441e5bcfe2"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-zxkcCdbp5stfPsUjbWfSsqSu0oq7mE7r';style-src 'self' 'nonce-zxkcCdbp5stfPsUjbWfSsqSu0oq7mE7r';font-src 'self' data:"},{"key":"Request-Id","value":"cd36133a-0b78-4db0-8e58-4cdd8d8819f3"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"754ffb3f-a8b7-46b3-8d13-8c37a625f4a6"}],"id":"3ad3fac9-009b-4377-92d1-71d4b55ede7f","description":"<p>Metadata stores custom information attached to accounts or services. Each metadata instance conforms to a metadata definition that specifies its structure and validation rules.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#metadata\">https://docs.exivity.com/architecture%20concepts/glossary/#metadata</a></p>\n<h4 id=\"the-metadata-object\">The Metadata Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required, unique identifier for this metadata instance</td>\n</tr>\n<tr>\n<td>values</td>\n<td><em>object</em></td>\n<td>📝 editable</td>\n<td>Required. Key-value pairs where keys match field names from the metadata definition. Values must conform to the field types defined in the associated metadata definition. See <strong>Values Object Structure</strong>.</td>\n</tr>\n<tr>\n<td>metadatadefinition_id</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Required. ID of the metadata definition this metadata conforms to</td>\n</tr>\n<tr>\n<td>account_id</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Optional. ID of the account this metadata is attached to (mutually exclusive with service_id)</td>\n</tr>\n<tr>\n<td>service_id</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Optional. ID of the service this metadata is attached to (mutually exclusive with account_id)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Values Object Structure</strong></p>\n<p>The <code>values</code> object contains key-value pairs based on the metadata definition's fields:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"values\": {\n    \"email\": \"user@example.com\",           // string field\n    \"department\": \"engineering\",            // list field\n    \"cost_center\": 12345,                   // numeric field\n    \"start_date\": \"2025-01-15\",            // date field\n    \"user_groups\": [\"admin\", \"developers\"]  // string_array field\n  }\n}\n\n</code></pre>\n<p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>definition</td>\n<td>hasOne</td>\n<td>metadatadefinition</td>\n<td>✅</td>\n</tr>\n<tr>\n<td>services</td>\n<td>hasMany</td>\n<td>service</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>accounts</td>\n<td>hasMany</td>\n<td>account</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"caf2ab7a-dd0d-4548-96e4-67dbfc493a83","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"c177daf4-85d6-4d3a-a699-4784c5a221ec","type":"text/javascript","exec":[""]}}],"_postman_id":"3ad3fac9-009b-4377-92d1-71d4b55ede7f"},{"name":"/workflows","item":[{"name":"Add a new workflow","event":[{"listen":"test","script":{"id":"525f1b0f-7dce-416f-86b1-3138a5f246ce","exec":["// Unset these variables as they will be attached to the old workflow","console.log('UNSET workflowrun_id');","pm.environment.unset(\"workflowrun_id\");","console.log('UNSET execute_workflowstep_id');","pm.environment.unset(\"execute_workflowstep_id\");","","pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflow');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"name\": \"test\",","        \"description\": \"This is test task\"","  });","    pm.expect(response.data.attributes.created_at).to.be.a('string');","    pm.expect(response.data.attributes.updated_at).to.be.a('string');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"workflow_id\", response.data.id);","console.log('SET workflow_id: ' + pm.environment.get(\"workflow_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"1927dddd-7cfe-490a-994a-d89c59c360e9","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"faa34655-6b66-4a0e-bc67-a955709f9b59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflow\",\r\n    \t\"attributes\": {\r\n    \t\t\"name\": \"test\",\r\n            \"description\": \"This is test task\"\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflows","urlObject":{"path":["v1","workflows"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"45afad64-cef3-4acc-8c02-2a1eca598b61","name":"Add a new workflow","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflow\",\r\n    \t\"attributes\": {\r\n    \t\t\"name\": \"test\",\r\n            \"description\": \"This is test task\"\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflows"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:17:15 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:17:15 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Workflow/Workflows"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xf0eb0fc1c1bb9b1038766023915ef353"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-mcMqOAds8DaCyx3Qi2n8Q50WleEDOaC2';style-src 'self' 'nonce-mcMqOAds8DaCyx3Qi2n8Q50WleEDOaC2';font-src 'self' data:"},{"key":"Request-Id","value":"d045e665-1040-4955-80eb-8824e124763b"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflow\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"name\": \"test\",\n            \"description\": \"This is test task\",\n            \"created_at\": \"2022-02-04T10:17:15Z\",\n            \"updated_at\": \"2022-02-04T10:17:15Z\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflows/1\"\n        },\n        \"relationships\": {\n            \"runs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/1/relationships/runs\",\n                    \"related\": \"http://localhost:8012/v1/workflows/1/runs\"\n                }\n            },\n            \"steps\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/1/relationships/steps\",\n                    \"related\": \"http://localhost:8012/v1/workflows/1/steps\"\n                }\n            },\n            \"schedules\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/1/relationships/schedules\",\n                    \"related\": \"http://localhost:8012/v1/workflows/1/schedules\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"faa34655-6b66-4a0e-bc67-a955709f9b59"},{"name":"Retrieve a list of workflows","event":[{"listen":"test","script":{"id":"43cdd595-34ac-4daf-b9fd-c752d610b552","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});",""],"type":"text/javascript"}}],"id":"64b649b2-4521-44f2-979d-ef5063d6bec0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflows?page[limit]=&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","workflows"],"host":["{{base_url}}"],"query":[{"key":"page[limit]","value":""},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>steps</code>, <code>schedules</code>, <code>runs</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"63257682-44e6-47c1-8159-450d65c1c736","name":"Retrieve a list of workflows including runs (limit of 2 per workflow)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflows?page[limit]=&page[offset]&sort&filter[attribute]&include=runs&page[runs][limit]=2","host":["{{base_url}}"],"path":["v1","workflows"],"query":[{"key":"page[limit]","value":""},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Filter results by this attribute"},{"key":"include","value":"runs","description":"Include additional related resources. Possible values: `steps`, `schedules`, `runs`."},{"key":"page[runs][limit]","value":"2"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 25 Feb 2019 13:24:02 +0000"},{"key":"Date","value":"Mon, 25 Feb 2019 13:24:02 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.1.21"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"workflow\",\n            \"id\": \"24\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T09:35:02+00:00\",\n                \"updated_at\": \"2019-02-19T09:35:03+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/24\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/24/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/24/runs\"\n                    },\n                    \"data\": [\n                        {\n                            \"type\": \"workflowrun\",\n                            \"id\": \"2\"\n                        },\n                        {\n                            \"type\": \"workflowrun\",\n                            \"id\": \"3\"\n                        }\n                    ]\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"25\",\n            \"attributes\": {\n                \"name\": \"test\",\n                \"description\": \"This is test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T09:35:59+00:00\",\n                \"updated_at\": \"2019-02-19T13:26:14+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/25\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/25/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/25/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"31\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T10:27:14+00:00\",\n                \"updated_at\": \"2019-02-19T10:27:15+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/31\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/31/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/31/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"37\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T10:31:07+00:00\",\n                \"updated_at\": \"2019-02-19T10:31:08+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/37\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/37/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/37/runs\"\n                    },\n                    \"data\": [\n                        {\n                            \"type\": \"workflowrun\",\n                            \"id\": \"7\"\n                        },\n                        {\n                            \"type\": \"workflowrun\",\n                            \"id\": \"10\"\n                        }\n                    ]\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"41\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T12:12:34+00:00\",\n                \"updated_at\": \"2019-02-19T12:12:39+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/41\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/41/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/41/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"45\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T12:40:54+00:00\",\n                \"updated_at\": \"2019-02-19T12:41:00+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/45\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/45/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/45/runs\"\n                    },\n                    \"data\": [\n                        {\n                            \"type\": \"workflowrun\",\n                            \"id\": \"1\"\n                        }\n                    ]\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"46\",\n            \"attributes\": {\n                \"name\": \"test\",\n                \"description\": \"This is test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T13:49:51+00:00\",\n                \"updated_at\": \"2019-02-19T13:49:51+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/46\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/46/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/46/runs\"\n                    },\n                    \"data\": [\n                        {\n                            \"type\": \"workflowrun\",\n                            \"id\": \"5\"\n                        }\n                    ]\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"47\",\n            \"attributes\": {\n                \"name\": \"test\",\n                \"description\": \"This is test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-19T13:50:14+00:00\",\n                \"updated_at\": \"2019-02-19T13:50:14+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/47\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/47/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/47/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"51\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-20T16:01:21+00:00\",\n                \"updated_at\": \"2019-02-20T16:01:26+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/51\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/51/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/51/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"57\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-25T08:23:01+00:00\",\n                \"updated_at\": \"2019-02-25T08:23:06+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/57\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/57/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/57/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"61\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-25T08:26:24+00:00\",\n                \"updated_at\": \"2019-02-25T08:26:28+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/61\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/61/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/61/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"type\": \"workflow\",\n            \"id\": \"65\",\n            \"attributes\": {\n                \"name\": \"modified test\",\n                \"description\": \"This is a modified test task\",\n                \"locked\": false,\n                \"created_at\": \"2019-02-25T12:26:01+00:00\",\n                \"updated_at\": \"2019-02-25T12:26:05+00:00\"\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflows/65\"\n            },\n            \"relationships\": {\n                \"runs\": {\n                    \"links\": {\n                        \"self\": \"https://localhost:8012/v1/workflows/65/relationships/runs\",\n                        \"related\": \"https://localhost:8012/v1/workflows/65/runs\"\n                    },\n                    \"data\": []\n                }\n            }\n        }\n    ],\n    \"included\": [\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"2\",\n            \"attributes\": {\n                \"start\": {\n                    \"date\": \"2019-02-19 14:34:52.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"end\": {\n                    \"date\": \"2019-02-19 14:34:52.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"status\": 3\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflowruns/2\"\n            }\n        },\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"3\",\n            \"attributes\": {\n                \"start\": {\n                    \"date\": \"2019-02-19 14:35:00.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"end\": {\n                    \"date\": \"2019-02-19 14:35:00.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"status\": 5\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflowruns/3\"\n            }\n        },\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"7\",\n            \"attributes\": {\n                \"start\": {\n                    \"date\": \"2019-02-20 14:33:27.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"end\": {\n                    \"date\": \"2019-02-20 14:33:27.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"status\": 5\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflowruns/7\"\n            }\n        },\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"10\",\n            \"attributes\": {\n                \"start\": {\n                    \"date\": \"2019-02-20 14:33:28.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"end\": {\n                    \"date\": \"2019-02-20 14:33:28.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"status\": 5\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflowruns/10\"\n            }\n        },\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"1\",\n            \"attributes\": {\n                \"start\": {\n                    \"date\": \"2019-02-19 14:34:52.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"end\": {\n                    \"date\": \"2019-02-19 14:34:52.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"status\": 3\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflowruns/1\"\n            }\n        },\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"5\",\n            \"attributes\": {\n                \"start\": {\n                    \"date\": \"2019-02-19 14:35:03.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"end\": {\n                    \"date\": \"2019-02-19 14:35:03.000000\",\n                    \"timezone_type\": 1,\n                    \"timezone\": \"+00:00\"\n                },\n                \"status\": 5\n            },\n            \"links\": {\n                \"self\": \"https://localhost:8012/v1/workflowruns/5\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 12,\n            \"count\": 12,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"https://localhost:8012/v1/workflows?page%5Blimit%5D=&page%5Bruns%5D%5Blimit%5D=2&sort=&filter%5Battribute%5D=&include=runs&page%5Boffset%5D=1\",\n        \"first\": \"https://localhost:8012/v1/workflows?page%5Blimit%5D=&page%5Bruns%5D%5Blimit%5D=2&sort=&filter%5Battribute%5D=&include=runs&page%5Boffset%5D=1\",\n        \"last\": \"https://localhost:8012/v1/workflows?page%5Blimit%5D=&page%5Bruns%5D%5Blimit%5D=2&sort=&filter%5Battribute%5D=&include=runs&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"64b649b2-4521-44f2-979d-ef5063d6bec0"},{"name":"Retrieve a workflow","event":[{"listen":"test","script":{"id":"72cbea9b-025b-4d31-81f4-3f5ab9324787","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflow');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"workflow_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"name\": \"test\",","        \"description\": \"This is test task\"","  });","    pm.expect(response.data.attributes.created_at).to.be.a('string');","    pm.expect(response.data.attributes.updated_at).to.be.a('string');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"476db509-4c61-41f6-806b-1a0cdbdece8f","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireWorkflow)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"69749f3f-c727-4fa7-b7b1-cd9774696f55","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflows/:workflowId?include=","urlObject":{"path":["v1","workflows",":workflowId"],"host":["{{base_url}}"],"query":[{"key":"include","value":""}],"variable":[{"type":"string","value":"{{workflow_id}}","key":"workflowId"}]}},"response":[{"id":"fac27559-7e0f-41d9-aa9a-f4266f37038b","name":"Retrieve a workflow","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflows/:workflowId?include=","host":["{{base_url}}"],"path":["v1","workflows",":workflowId"],"query":[{"key":"include","value":""}],"variable":[{"id":"60999afe-af54-4e22-8a24-cda58da40da7","key":"workflowId","value":"{{workflow_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:17:28 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:17:28 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xd1982c0f1100b0a0b535a059a81ce4b4"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-w5Fy8XS9tHYNbwbhTZWhYEaVBXUCYczo';style-src 'self' 'nonce-w5Fy8XS9tHYNbwbhTZWhYEaVBXUCYczo';font-src 'self' data:"},{"key":"Request-Id","value":"78cde0d4-0baa-42f7-87cf-3ddef16cf24c"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflow\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"name\": \"test\",\n            \"description\": \"This is test task\",\n            \"created_at\": \"2022-02-04T10:17:15Z\",\n            \"updated_at\": \"2022-02-04T10:17:15Z\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflows/1\"\n        },\n        \"relationships\": {\n            \"runs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/1/relationships/runs\",\n                    \"related\": \"http://localhost:8012/v1/workflows/1/runs\"\n                }\n            },\n            \"steps\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/1/relationships/steps\",\n                    \"related\": \"http://localhost:8012/v1/workflows/1/steps\"\n                }\n            },\n            \"schedules\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/1/relationships/schedules\",\n                    \"related\": \"http://localhost:8012/v1/workflows/1/schedules\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"69749f3f-c727-4fa7-b7b1-cd9774696f55"},{"name":"Update a workflow","event":[{"listen":"test","script":{"id":"3271bba7-6ac9-45cc-9841-ea09d3c0b4bc","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflow');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"workflow_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"name\": \"modified test\",","        \"description\": \"This is a modified test task\"","  });","    pm.expect(response.data.attributes.created_at).to.be.a('string');","    pm.expect(response.data.attributes.updated_at).to.be.a('string');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"9d2fe0a8-2ee7-418a-a504-b6a70e00c06d","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"227f589b-e878-4b8d-bb8e-6252539d81cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"workflow\",\r\n    \"id\": \"{{workflow_id}}\",\r\n    \"attributes\": {\r\n\t\t\"name\": \"modified test\",\r\n\t\t\"description\": \"This is a modified test task\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/workflows/{{workflow_id}}","urlObject":{"path":["v1","workflows","{{workflow_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"7fda0163-fba5-49e2-b1c6-a73250bc1f1d","name":"Update a workflow","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"workflow\",\r\n    \"id\": \"{{workflow_id}}\",\r\n    \"attributes\": {\r\n\t\t\"name\": \"modified test\",\r\n\t\t\"description\": \"This is a modified test task\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/workflows/{{workflow_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 05 Sep 2023 11:50:06 GMT"},{"key":"Date","value":"Tue, 05 Sep 2023 11:50:06 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xf5104d68289bf7d35541c03ae96a0500"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-HVrIhXAL0PYWAim7CZXnUUtMSSqaVOpS';style-src 'self' 'nonce-HVrIhXAL0PYWAim7CZXnUUtMSSqaVOpS';font-src 'self' data:"},{"key":"Request-Id","value":"5c4f3acb-fae7-4715-80e4-7c8dedb48bbc"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflow\",\n        \"id\": \"5\",\n        \"attributes\": {\n            \"name\": \"modified test\",\n            \"description\": \"This is a modified test task\",\n            \"created_at\": \"2023-09-05T11:49:59Z\",\n            \"updated_at\": \"2023-09-05T11:50:06Z\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflows/5\"\n        },\n        \"relationships\": {\n            \"runs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/5/relationships/runs\",\n                    \"related\": \"http://localhost:8012/v1/workflows/5/runs\"\n                }\n            },\n            \"steps\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/5/relationships/steps\",\n                    \"related\": \"http://localhost:8012/v1/workflows/5/steps\"\n                }\n            },\n            \"schedules\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflows/5/relationships/schedules\",\n                    \"related\": \"http://localhost:8012/v1/workflows/5/schedules\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"227f589b-e878-4b8d-bb8e-6252539d81cd"},{"name":"Run a workflow","event":[{"listen":"test","script":{"id":"9d3f5b63-7044-43a3-9e2e-87075d94f7cb","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.output).to.be.an('array');","    pm.expect(response.status).to.eql(true);","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"1a1574ee-b2de-4b07-8aa4-2dbd17b384c2","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.requireWorkflowExecuteStep)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"b1b4ce1f-1ee5-47c1-8077-7dc916cf1a1d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/workflows/{{workflow_id}}/run?date","description":"<p>Once a workflow has been created and steps have been added, you can now run the workflow. See <code>workflow_runs</code> and <code>workflow_step_logs</code> to view the output of a run.</p>\n","urlObject":{"path":["v1","workflows","{{workflow_id}}","run"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The date to manually run the workflow for (in <code>YYYY-MM-DD</code> format). Defaults to the current date.</p>\n","type":"text/plain"},"key":"date","value":null}],"variable":[]}},"response":[{"id":"7de2c7af-afc2-408e-8b27-9c38972f68f5","name":"Run a workflow","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/v1/workflows/{{workflow_id}}/run?date","host":["{{base_url}}"],"path":["v1","workflows","{{workflow_id}}","run"],"query":[{"key":"date","value":null,"description":"The date to manually run the workflow for (in `YYYY-MM-DD` format). Defaults to the current date."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:31:31 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:31:31 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X012ac040ceef439202bd4999e5bfd728"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X012ac040ceef439202bd4999e5bfd728"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-2jjra9G5pnWd42XU1P74p91rRNMpN1ue';style-src 'self' 'nonce-2jjra9G5pnWd42XU1P74p91rRNMpN1ue';font-src 'self' data:"},{"key":"Request-Id","value":"b07457fc-6fb8-4b12-ba3a-4d0d5be8b9b5"}],"cookie":[],"responseTime":null,"body":"{\n    \"output\": [],\n    \"status\": true\n}"}],"_postman_id":"b1b4ce1f-1ee5-47c1-8077-7dc916cf1a1d"},{"name":"Delete a workflow","event":[{"listen":"test","script":{"id":"81ef51c3-9929-41be-9728-960d17f4e6a5","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET workflow_id');","pm.environment.unset(\"workflow_id\");","console.log('UNSET workflowrun_id');","pm.environment.unset(\"workflowrun_id\");","console.log('UNSET execute_workflowstep_id');","pm.environment.unset(\"execute_workflowstep_id\");",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"41040e70-efa5-42a7-b09d-947ca6996bd1","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"5a1ad9b4-df2e-47a0-8e85-57aecbb39a33","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflows/{{workflow_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","workflows","{{workflow_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"919c2fbc-c307-46ae-b17d-38d12e892dcf","name":"Delete a workflow","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflows/{{workflow_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:17:34 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:17:34 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X94456b43569c7281fbecb72012ce3015"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X94456b43569c7281fbecb72012ce3015"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-mmH3VsECX3NzfrxAc5UE9HOFpNvn5Vlm';style-src 'self' 'nonce-mmH3VsECX3NzfrxAc5UE9HOFpNvn5Vlm';font-src 'self' data:"},{"key":"Request-Id","value":"56808d47-a632-446e-afa6-caae5123cfcf"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"5a1ad9b4-df2e-47a0-8e85-57aecbb39a33"}],"id":"6adb9863-cc52-4412-9977-5f2be41f3dcf","description":"<p>A workflow allows you to schedule various tasks and execute them at a specific date and time.</p>\n<p>Exivity documentation:<br /><a href=\"https://docs.exivity.com/Architecture%20concepts/Glossary#workflow\">https://docs.exivity.com/Architecture%20concepts/Glossary#workflow</a></p>\n<p><strong>To create a workflow</strong></p>\n<ol>\n<li><p>Create a workflow object</p>\n</li>\n<li><p>Create a workflow schedule</p>\n</li>\n<li><p>Add steps to the workflow</p>\n</li>\n</ol>\n<h4 id=\"the-workflow-object\">The Workflow Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>description</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td></td>\n</tr>\n<tr>\n<td>created_at</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n<tr>\n<td>updated_at</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>steps</td>\n<td>hasMany</td>\n<td>workflowstep</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>schedules</td>\n<td>hasMany</td>\n<td>workflowschedule</td>\n<td>❌</td>\n</tr>\n<tr>\n<td>runs</td>\n<td>hasMany</td>\n<td>workflowrun</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[]},"isInherited":false},"_postman_id":"6adb9863-cc52-4412-9977-5f2be41f3dcf"},{"name":"/workflowschedules","item":[{"name":"Add a new schedule","event":[{"listen":"test","script":{"id":"7cb87b26-e7f8-4b96-8ca5-4d7f9d0f5e81","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowschedule');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"start_time\": pm.environment.get(\"tomorrow\"),","        \"timezone\": \"Europe/Amsterdam\",","        \"adjust_for_dst\": true,","        \"frequency\": \"daily\",","        \"frequency_modifier\": 2","  });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"workflowschedule_id\", response.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"ac425683-0a12-4fd1-9fa7-39e5042b6c87","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r","\r","var day = new Date(); // today\r","day.setDate(day.getDate() + 1); // tomorrow\r","pm.environment.set(\"tomorrow\", day.toISOString().slice(0, -5) + 'Z'); // Remove the milliseconds "],"type":"text/javascript"}}],"id":"154ce697-b1f1-4ee2-b898-c77cb3fc0750","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowschedule\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"start_time\": \"{{tomorrow}}\",\r\n\t\t\t\"timezone\": \"Europe/Amsterdam\",\r\n\t\t\t\"adjust_for_dst\": true,\r\n\t\t\t\"frequency\": \"daily\",\r\n\t\t\t\"frequency_modifier\": 2\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowschedules","urlObject":{"path":["v1","workflowschedules"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"edaf9342-c425-4fd7-8e98-b9b8fac18a79","name":"Add a new schedule","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowschedule\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"start_time\": \"2020-01-01T18:00:00Z\",\r\n\t\t\t\"timezone\": \"Europe/Amsterdam\",\r\n\t\t\t\"adjust_for_dst\": true,\r\n\t\t\t\"frequency\": \"daily\",\r\n\t\t\t\"frequency_modifier\": 2\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowschedules"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:19:40 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:19:40 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowSchedule/WorkflowSchedules"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X048f5350fd08da3544c5dcdac7de1a1b"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-zUBusmtAXMAsCA7SWmHpbWUlmqW6XvRJ';style-src 'self' 'nonce-zUBusmtAXMAsCA7SWmHpbWUlmqW6XvRJ';font-src 'self' data:"},{"key":"Request-Id","value":"4fea186b-9645-4046-b044-31b6691c79c3"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowschedule\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"start_time\": \"2020-01-01T18:00:00Z\",\n            \"timezone\": \"Europe/Amsterdam\",\n            \"adjust_for_dst\": true,\n            \"frequency\": \"daily\",\n            \"frequency_modifier\": 2,\n            \"next_run\": \"1970-01-01T00:00:00Z\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowschedules/1\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowschedules/1/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowschedules/1/workflow\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"154ce697-b1f1-4ee2-b898-c77cb3fc0750"},{"name":"Retrieve a list of schedules","event":[{"listen":"test","script":{"id":"5a5b54a8-535f-4c7a-b279-b1e5167d3013","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"76f2c35b-05c9-41d3-9541-d0119c71c623","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowschedules?page[limit]&page[offset]&sort=&filter[attribute]&include=","urlObject":{"path":["v1","workflowschedules"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>workflow</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"c0a4afd7-a34e-4a5a-8877-e161d0ef581c","name":"Retrieve a list of schedules","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowschedules?page[limit]&page[offset]&sort=&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","workflowschedules"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":"","description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `workflow`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.4.1"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 14 Jan 2025 10:55:07 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xfdca2c2a5ac5a0fb80399ac6bb3d3910"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xfdca2c2a5ac5a0fb80399ac6bb3d3910"},{"key":"ETag","value":"\"dc3b313a2e4c14abcfe30bacc8a6f450\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-UMFnCTmhI76fLXOv1Z4xvlAYelXc6J2u';style-src 'self' 'nonce-UMFnCTmhI76fLXOv1Z4xvlAYelXc6J2u';font-src 'self' data:"},{"key":"Request-Id","value":"26a49209-ebb7-478e-aab3-f96f294035be"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"workflowschedule\",\n            \"id\": \"1\",\n            \"attributes\": {\n                \"start_time\": \"2025-01-15T10:54:59Z\",\n                \"timezone\": \"Europe/Amsterdam\",\n                \"adjust_for_dst\": true,\n                \"frequency\": \"daily\",\n                \"frequency_modifier\": 2,\n                \"next_run\": \"2025-01-15T10:54:59Z\"\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowschedules/1\"\n            },\n            \"relationships\": {\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowschedules/1/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowschedules/1/workflow\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"count\": 1,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/workflowschedules?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/workflowschedules?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/workflowschedules?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"76f2c35b-05c9-41d3-9541-d0119c71c623"},{"name":"Retrieve a schedule","event":[{"listen":"test","script":{"id":"5ce6e84d-69cc-4b99-a6c3-8a79cbf933ae","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowschedule');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"workflowschedule_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"start_time\": pm.environment.get(\"tomorrow\"),","        \"timezone\": \"Europe/Amsterdam\",","        \"adjust_for_dst\": true,","        \"frequency\": \"daily\",","        \"frequency_modifier\": 2","  });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"617260b0-283d-4dc2-bb11-223a74c211c5","exec":[""],"type":"text/javascript"}}],"id":"1359f765-b49b-49df-8970-7b987db1e5f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}?include=","urlObject":{"path":["v1","workflowschedules","{{workflowschedule_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"29e1de1d-179b-41a0-80ee-c39188c8c382","name":"Retrieve a schedule","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}?include=","host":["{{base_url}}"],"path":["v1","workflowschedules","{{workflowschedule_id}}"],"query":[{"key":"include","value":"","description":"Include additional related resources"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:20:11 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:20:11 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X8080573c708fcfb6e9767116beee1fee"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-jB9Dj5jU9Ij1DUGA00aopqi1sOBerhPr';style-src 'self' 'nonce-jB9Dj5jU9Ij1DUGA00aopqi1sOBerhPr';font-src 'self' data:"},{"key":"Request-Id","value":"5ca9458d-a33a-4dac-aeba-d0895a034c1a"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowschedule\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"start_time\": \"2020-01-01T18:00:00Z\",\n            \"timezone\": \"Europe/Amsterdam\",\n            \"adjust_for_dst\": true,\n            \"frequency\": \"daily\",\n            \"frequency_modifier\": 2,\n            \"next_run\": \"2022-02-05T18:00:00Z\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowschedules/1\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowschedules/1/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowschedules/1/workflow\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"1359f765-b49b-49df-8970-7b987db1e5f3"},{"name":"Update a schedule","event":[{"listen":"test","script":{"id":"f9701b1e-56dc-4ad5-8ddc-4202d0cc0af3","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowschedule');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"workflowschedule_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"start_time\": pm.environment.get(\"tomorrow\"),","        \"timezone\": \"Europe/London\",","        \"adjust_for_dst\": true,","        \"frequency\": \"daily\",","        \"frequency_modifier\": 2","  });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"18ed8fdd-f4e9-485e-a606-8470b7ce0ebf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"workflowschedule\",\r\n    \"id\": \"{{workflowschedule_id}}\",\r\n    \"attributes\": {\r\n      \"timezone\": \"Europe/London\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}","urlObject":{"path":["v1","workflowschedules","{{workflowschedule_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1ca4dc98-4a54-4a54-9cc4-172c11a2b18e","name":"Update a schedule","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"workflowschedule\",\r\n    \"id\": \"{{workflowschedule_id}}\",\r\n    \"attributes\": {\r\n      \"timezone\": \"Europe/London\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.4.1"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 14 Jan 2025 10:55:35 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xb67a88098627032495b3f7baebc95d2f"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xb67a88098627032495b3f7baebc95d2f"},{"key":"ETag","value":"\"061ca906afd5b1c9d3e7d92ac764ad08\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-7HvtnymT5mJfQjaeKRwpQ581mApZJpEk';style-src 'self' 'nonce-7HvtnymT5mJfQjaeKRwpQ581mApZJpEk';font-src 'self' data:"},{"key":"Request-Id","value":"ef145156-9aed-45c9-b6fc-16578085fe3c"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowschedule\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"start_time\": \"2025-01-15T10:54:59Z\",\n            \"timezone\": \"Europe/London\",\n            \"adjust_for_dst\": true,\n            \"frequency\": \"daily\",\n            \"frequency_modifier\": 2,\n            \"next_run\": \"2025-01-15T10:54:59Z\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowschedules/1\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowschedules/1/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowschedules/1/workflow\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"18ed8fdd-f4e9-485e-a606-8470b7ce0ebf"},{"name":"Delete a schedule","event":[{"listen":"test","script":{"id":"43015ed0-58cf-40ba-aa47-950a39d34893","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET workflowschedule_id');","pm.environment.unset(\"workflowschedule_id\");",""],"type":"text/javascript"}}],"id":"66d24aca-d359-412e-9e80-8cd4991b7293","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","workflowschedules","{{workflowschedule_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"dc146df3-82c5-4202-b7b7-c96dcd1c594c","name":"Delete a schedule","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:20:33 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:20:33 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xf9ccd5b7be1e9d625536fd2da8bd0564"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xf9ccd5b7be1e9d625536fd2da8bd0564"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-PaZLwZmsBKrW4TYSO1tGBkRHKlBbeZSF';style-src 'self' 'nonce-PaZLwZmsBKrW4TYSO1tGBkRHKlBbeZSF';font-src 'self' data:"},{"key":"Request-Id","value":"b9dac2e2-ceb4-402a-83d8-e13ff8ddd3ba"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"66d24aca-d359-412e-9e80-8cd4991b7293"}],"id":"7ac62937-0fe7-4780-8697-8a69fac8b820","description":"<p>Exivity documentation:<br /><a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#workflowschedule\">https://docs.exivity.com/architecture%20concepts/glossary/#workflowschedule</a></p>\n<p>Schedule how often a workflow should run.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>start_time</td>\n<td><em>datetime</em></td>\n<td>📝 editable</td>\n<td>Required. Earliest time workflow can start.</td>\n</tr>\n<tr>\n<td>timezone</td>\n<td><em>timezone</em></td>\n<td>📝 editable</td>\n<td>Required. The timezone is used only when adjust_for_dst is set to true. If the timezone doesn't use daylight saving time <em>(i.e. (UTC) Coordinated Universal Time, (UTC+01:00) West Central Africa etc.)</em>, no changes are applied when calculating the next run.</td>\n</tr>\n<tr>\n<td>adjust_for_dst</td>\n<td><em>boolean</em></td>\n<td>📝 editable</td>\n<td>Required.  <br />If true, and the timezone uses daylight saving time, the workflow run time is adjusted to take this into account.  <br /><strong>Example:</strong>  <br />* in winter, 00:01 UTC means 01:01 in Berlin  <br />* in summer, 00:01 UTC means 02:01 in Berlin</td>\n</tr>\n<tr>\n<td>frequency</td>\n<td><em>enum</em> (<code>hourly</code><em>,</em> <code>daily</code><em>,</em> <code>monthly</code>)</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>frequency_modifier</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Examples  <br /><em><strong>frequency</strong></em><strong>: daily,</strong> <em><strong>frequency_modifier</strong></em><strong>: 2</strong> - the workflow will run every two days  <br />  <br /><em><strong>frequency</strong></em><strong>: hourly,</strong> <em><strong>frequency_modifier</strong></em><strong>: 3</strong> - the workflow will run every three hours</td>\n</tr>\n<tr>\n<td>next_run</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>workflow</td>\n<td>hasOne</td>\n<td>workflow</td>\n<td>✔️</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"92db3ac8-cdda-40c2-bfd2-51a20ab98901","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"165bde10-ad84-4cf5-a05c-96f680ee117e","type":"text/javascript","exec":[""]}}],"_postman_id":"7ac62937-0fe7-4780-8697-8a69fac8b820"},{"name":"/workflowsteps","item":[{"name":"Add a new extract(use) step","event":[{"listen":"test","script":{"id":"27e0be1c-a070-4db9-86ac-4b55394f9884","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(pm.response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","\t\t\"type\": \"use\",","\t\t\"timeout\": 600,","    });","","\tpm.expect(response.data.attributes.options).to.be.an('object');","    pm.expect(response.data.attributes.options).to.have.keys([\"name\", \"from_date\", \"to_date\", \"arguments\", \"environment_id\"]);","\tpm.expect(response.data.attributes.options).to.include({","        \"name\": pm.environment.get(\"extractor_name\"),","\t\t\"from_date\": -2,","\t\t\"to_date\": 0,","\t\t\"arguments\": \"arg3 arg4\"","\t});"," });","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"use_workflowstep_id\", response.data.id);","console.log('SET use_workflowstep_id: ' + pm.environment.get(\"use_workflowstep_id\"));","pm.environment.set(\"workflowstep_id\", response.data.id);","console.log('SET workflowstep_id: ' + pm.environment.get(\"workflowstep_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"4cc34338-9cbe-4a29-9daa-7b945c19f3f3","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.requireExtractor)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","});\r","\r",""],"type":"text/javascript"}}],"id":"8b4969dd-dbb5-43cd-8963-acfe6767b172","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"use\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"name\": \"{{extractor_name}}\",\r\n\t\t\t\t\"from_date\": -2,\r\n\t\t\t\t\"to_date\": 0,\r\n\t\t\t\t\"arguments\": \"arg3 arg4\",\r\n                \"environment_id\": null\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps","description":"<h4 id=\"options\">Options</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>from_date</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Date offset, default 0 (today)  <br />Exampele:  <br />0 - today  <br />-1 = yesterday  <br />-2 = 2 days ago</td>\n</tr>\n<tr>\n<td>to_date</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Date offset, default 0 (today)</td>\n</tr>\n<tr>\n<td>arguments</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Custom extractor arguments</td>\n</tr>\n<tr>\n<td>environment_id</td>\n<td><em>numeric</em></td>\n<td>📝 editable</td>\n<td>Optional. Loads the variables that have been set in a given environment.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"e8fa1007-1a0d-4401-80c5-cd52546256f6","name":"Add a new extract(use) step","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"use\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"name\": \"Workflow_extractor\",\r\n\t\t\t\t\"from_date\": -2,\r\n\t\t\t\t\"to_date\": 0,\r\n\t\t\t\t\"arguments\": \"arg3 arg4\",\r\n                \"environment_id\": null\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 12 Sep 2023 13:55:01 GMT"},{"key":"Date","value":"Tue, 12 Sep 2023 13:55:01 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X906356e2f3d275946690fd685bdcd8a5"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-sELK8gMQHd1Vnf3mSfpiWbXC3oZWTp6X';style-src 'self' 'nonce-sELK8gMQHd1Vnf3mSfpiWbXC3oZWTp6X';font-src 'self' data:"},{"key":"Request-Id","value":"706b9570-0fa3-42c6-b194-6e9a2f865936"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"33\",\n        \"attributes\": {\n            \"type\": \"use\",\n            \"options\": {\n                \"name\": \"Workflow_extractor\",\n                \"from_date\": -2,\n                \"to_date\": 0,\n                \"arguments\": \"arg3 arg4\",\n                \"environment_id\": null\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/33\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/33/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/33/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/33/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/33/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/33/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/33/previous\"\n                }\n            }\n        }\n    }\n}"},{"id":"e262740f-052d-4487-bf85-7d8a40e32c2b","name":"Add a new step after existing (using previous_id)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"use\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"name\": \"{{extractor_name}}\",\r\n\t\t\t\t\"from_date\": -2,\r\n\t\t\t\t\"to_date\": 0,\r\n\t\t\t\t\"arguments\": \"arg3 arg4\",\r\n                \"environment_id\": null\r\n\t\t\t},\r\n            \"previous_id\": \"2\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 21 Oct 2025 09:05:12 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"01K8307VNH6R9FQBP0EXAYM7JQ"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"01K8307VNH6R9FQBP0EXAYM7JQ"},{"key":"ETag","value":"\"8927ff41f665f78d9767f28f6c573b25\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';font-src 'self' data:;form-action 'self';frame-src 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-Zzh5YvBWUpzsk1JgHsmlpFEsGNUP8UzA';style-src 'self' 'nonce-Zzh5YvBWUpzsk1JgHsmlpFEsGNUP8UzA'"},{"key":"Request-Id","value":"cdac5d7e-1c98-44bb-b4e0-cc37321e2e1c"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"8\",\n        \"attributes\": {\n            \"type\": \"use\",\n            \"options\": {\n                \"name\": \"Test_extractor_-_461\",\n                \"from_date\": -2,\n                \"to_date\": 0,\n                \"arguments\": \"arg3 arg4\",\n                \"environment_id\": null\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/8\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/8/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/8/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/8/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/8/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/8/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/8/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"8b4969dd-dbb5-43cd-8963-acfe6767b172"},{"name":"Add a new transform(transcript) step","event":[{"listen":"test","script":{"id":"3caedf07-43b6-4a38-a571-0bdec0a762f5","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","\t\t\"type\": \"transcript\",","\t\t\"timeout\": 600,","\t});","\tpm.expect(response.data.attributes.options).to.be.an('object');","\tpm.expect(response.data.attributes.options).to.include({","\t\t\"name\": \"Workflow_transformer\",","        \"from_date\": -2,","\t\t\"to_date\": -1","\t});","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"transcript_workflowstep_id\", response.data.id);","console.log('SET transcript_workflowstep_id: ' + pm.environment.get(\"transcript_workflowstep_id\"));","pm.environment.set(\"workflowstep_id\", response.data.id);","console.log('SET workflowstep_id: ' + pm.environment.get(\"workflowstep_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"104d0722-d6ef-48c2-aed0-ba7310844cd3","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","});\r","\r","\r","\r","pm.sendRequest({\r","    url: pm.variables.get(\"base_url\") + '/v1/transformers',\r","    method: 'POST',\r","    header: {\r","        'Accept': 'application/json',\r","        'Content-Type': 'application/json',\r","        'Authorization': 'Bearer ' + pm.variables.get(\"token\")\r","    },\r","    body: {\r","        mode: 'raw',\r","        raw: JSON.stringify({\r","\t        \"name\": \"Workflow transformer\",\r","\t        \"contents\": \"# script here\"\r","        })\r","    }\r","})"],"type":"text/javascript"}}],"id":"5834e1e9-5602-40eb-a947-0aab8ef2fe9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"transcript\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"name\": \"Workflow_transformer\",\r\n\t\t\t\t\"from_date\": -2,\r\n\t\t\t\t\"to_date\": -1\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps","description":"<h4 id=\"options\">Options</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>from_date</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Date offset, default 0 (today)  <br />Exampele:  <br />0 - today  <br />-1 = yesterday  <br />-2 = 2 days ago</td>\n</tr>\n<tr>\n<td>to_date</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>Date offset, default 0 (today).</td>\n</tr>\n<tr>\n<td>environment_id</td>\n<td><em>numeric</em></td>\n<td>📝 editable</td>\n<td>Nullable</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"54239ba2-7406-4ca9-9372-13a80375fb67","name":"Add a new transform(transcript) step","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"transcript\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"name\": \"Workflow_transformer\",\r\n\t\t\t\t\"from_date\": \"-2\",\r\n\t\t\t\t\"to_date\": \"-1\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 12 Sep 2023 13:52:25 GMT"},{"key":"Date","value":"Tue, 12 Sep 2023 13:52:25 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X8a0922e29539eab81f2187884d666900"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-7vtDTR8aCEiJ2aSbehm33mzITUc3X4Tm';style-src 'self' 'nonce-7vtDTR8aCEiJ2aSbehm33mzITUc3X4Tm';font-src 'self' data:"},{"key":"Request-Id","value":"5603071c-3d65-461f-af98-684be98d8a11"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"31\",\n        \"attributes\": {\n            \"type\": \"transcript\",\n            \"options\": {\n                \"name\": \"Workflow_transformer\",\n                \"from_date\": -2,\n                \"to_date\": -1,\n                \"environment_id\": null\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/31\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/31/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/31/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/31/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/31/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/31/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/31/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"5834e1e9-5602-40eb-a947-0aab8ef2fe9d"},{"name":"Add a new prepare report(edify) step","event":[{"listen":"test","script":{"id":"f0488ee7-7d48-4115-9ca6-2d04163a7bca","exec":["pm.test(\"Status code is 201\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","const response = pm.response.json();\r","console.log(response);\r","\r","pm.test(\"Response contains correct data\", function () {\r","    pm.expect(response.data).to.be.an('object');\r","    pm.expect(response.data.type).to.eql('workflowstep');\r","    pm.expect(response.data.id).to.not.be.undefined;\r","    pm.expect(response.data.attributes).to.be.an('object');\r","    pm.expect(response.data.attributes).to.include({\r","\t\t\"type\": \"edify\",\r","\t\t\"timeout\": 600,\r","\t});\r","\tpm.expect(response.data.attributes.options).to.be.an('object');\r","\tpm.expect(response.data.attributes.options).to.include({\r","\t\t\"report_id\": pm.environment.get('report_id'),\r","        \"from_date\": -2,\r","        \"to_date\": -1\r","\t});\r","});\r","\r","pm.test(\"Response contains data.links\", function () {\r","    pm.expect(response.data.links).to.be.an('object');\r","});\r","\r","pm.environment.set(\"edify_workflowstep_id\", response.data.id);\r","console.log('SET edify_workflowstep_id: ' + pm.environment.get(\"edify_workflowstep_id\"));\r","pm.environment.set(\"workflowstep_id\", response.data.id);\r","console.log('SET workflowstep_id: ' + pm.environment.get(\"workflowstep_id\"));\r",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"3127f109-f7fe-4208-8354-2605fbea88fb","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireReport)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r","    "],"type":"text/javascript"}}],"id":"1c72ec85-e387-46bf-8235-b553b7c7c3bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"edify\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"report_id\": \"{{report_id}}\",\r\n\t\t\t\t\"from_date\": -2,\r\n\t\t\t\t\"to_date\": -1\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps","description":"<h4 id=\"options\">Options</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>report_id</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>split</td>\n<td><em>enum</em> (<code>daily</code>, <code>monthly</code>)</td>\n<td>📝 editable</td>\n<td>Default: monthly  <br />Split the proccessing into daily/monthly chunks, to speed to the processing time.</td>\n</tr>\n<tr>\n<td>from_date</td>\n<td><em>numeric</em></td>\n<td>📝 editable</td>\n<td>Date offset, default 0 (today)  <br />Exampele:  <br />0 - today  <br />-1 = yesterday  <br />-2 = 2 days ago</td>\n</tr>\n<tr>\n<td>to_date</td>\n<td><em>numeric</em></td>\n<td>📝 editable</td>\n<td>Date offset, default 0 (today).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"9decfd18-9b02-4f14-8d77-16c5013089d9","name":"Add a new report(edify) step","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"workflowstep\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"type\": \"edify\",\r\n\t\t\t\"timeout\": 600,\r\n\t\t\t\"options\": {\r\n\t\t\t\t\"report_id\": \"{{report_id}}\",\r\n\t\t\t\t\"from_date\": -2,\r\n\t\t\t\t\"to_date\": \"-1\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"workflow\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflow\",\r\n\t\t\t\t\t\"id\": \"{{workflow_id}}\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n    \t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 12 Sep 2023 13:52:55 GMT"},{"key":"Date","value":"Tue, 12 Sep 2023 13:52:55 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X803a698e4373c5a4ae1cfd67128729fb"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-6qOP07NzgLb4Uo91icybsIHAvcrYcTo2';style-src 'self' 'nonce-6qOP07NzgLb4Uo91icybsIHAvcrYcTo2';font-src 'self' data:"},{"key":"Request-Id","value":"6d7214ae-42e9-40c3-a4ec-4c1caa534511"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"32\",\n        \"attributes\": {\n            \"type\": \"edify\",\n            \"options\": {\n                \"report_id\": \"5\",\n                \"from_date\": -2,\n                \"to_date\": -1\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/32\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/32/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/32/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/32/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/32/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/32/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/32/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"1c72ec85-e387-46bf-8235-b553b7c7c3bb"},{"name":"Add a new execute step","event":[{"listen":"prerequest","script":{"id":"e1d10040-7b10-45e2-8f79-abf3f632ef98","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","});\r",""],"type":"text/javascript"}},{"listen":"test","script":{"id":"6457589e-f6fc-4523-8ff1-38e31308fb29","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","    \"type\": \"execute\",","    \"timeout\": 600,","  });","  pm.expect(response.data.attributes.options).to.be.an('object');","  pm.expect(response.data.attributes.options).to.include({","    \"command\": \"echo \\\"testing\\\"\"","  });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"execute_workflowstep_id\", response.data.id);","console.log('SET execute_workflowstep_id: ' + pm.environment.get(\"execute_workflowstep_id\"));","pm.environment.set(\"workflowstep_id\", response.data.id);","console.log('SET workflowstep_id: ' + pm.environment.get(\"workflowstep_id\"));",""],"type":"text/javascript"}}],"id":"abf53e55-ca41-4f31-9993-490c2510198e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"attributes\": {\r\n            \"type\": \"execute\",\r\n            \"timeout\": 600,\r\n            \"options\": {\r\n                \"command\": \"echo \\\"testing\\\"\"\r\n            }\r\n        },\r\n        \"relationships\": {\r\n            \"workflow\": {\r\n                \"data\": {\r\n                    \"type\": \"workflow\",\r\n                    \"id\": \"{{workflow_id}}\"\r\n                }\r\n            }\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/workflowsteps","description":"<h4 id=\"options\">Options</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>command</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"e5a55c3b-46d8-4e92-b2d9-be4d72e34f02","name":"Add a new execute step","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"attributes\": {\r\n            \"type\": \"execute\",\r\n            \"timeout\": 600,\r\n            \"options\": {\r\n                \"command\": \"echo \\\"testing\\\"\"\r\n            }\r\n        },\r\n        \"relationships\": {\r\n            \"workflow\": {\r\n                \"data\": {\r\n                    \"type\": \"workflow\",\r\n                    \"id\": \"{{workflow_id}}\"\r\n                }\r\n            },\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 05 Sep 2023 12:11:58 GMT"},{"key":"Date","value":"Tue, 05 Sep 2023 12:11:58 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xb2caf2245b20ad9f197752b10a2e2b58"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-gdPnX7NAseOzn8lGeRvdZEvhCb7tFoUr';style-src 'self' 'nonce-gdPnX7NAseOzn8lGeRvdZEvhCb7tFoUr';font-src 'self' data:"},{"key":"Request-Id","value":"c845367f-4cd8-4030-969f-c303386b3192"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"22\",\n        \"attributes\": {\n            \"type\": \"execute\",\n            \"options\": {\n                \"command\": \"echo \\\"testing\\\"\"\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/22\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/22/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/22/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/22/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/22/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/22/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/22/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"abf53e55-ca41-4f31-9993-490c2510198e"},{"name":"Add a new API(proximity) step","event":[{"listen":"test","script":{"id":"9d636ea9-fad0-4f85-91c3-fb5abd25cf98","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","    \"type\": \"proximity\",","    \"timeout\": 600,","  });","  pm.expect(response.data.attributes.options).to.be.an('object');","  pm.expect(response.data.attributes.options).to.include({","    \"command\": \"exivity:gc\",","        \"arguments\": \"\"","  });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"proximity_workflowstep_id\", response.data.id);","console.log('SET proximity_workflowstep_id: ' + pm.environment.get(\"proximity_workflowstep_id\"));","pm.environment.set(\"workflowstep_id\", response.data.id);","console.log('SET workflowstep_id: ' + pm.environment.get(\"workflowstep_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"06d923eb-d313-4638-811c-9eb42a70a283","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"43f32505-246f-4fca-8731-c2f188d0eb96","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"attributes\": {\r\n            \"type\": \"proximity\",\r\n            \"timeout\": 600,\r\n            \"options\": {\r\n                \"command\": \"exivity:gc\",\r\n                \"arguments\": \"\"\r\n            }\r\n        },\r\n        \"relationships\": {\r\n            \"workflow\": {\r\n                \"data\": {\r\n                    \"type\": \"workflow\",\r\n                    \"id\": \"{{workflow_id}}\"\r\n                }\r\n            },\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/workflowsteps","description":"<h4 id=\"options\">Options</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>command</td>\n<td><em>enum</em>(<code>exivity:gc</code>, <code>exivity:purge-cache</code> )</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>arguments</td>\n<td><em>string</em></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"ca28b66f-ff4e-4d10-9441-c1b80f3e355a","name":"Add a new API(proximity) step","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"attributes\": {\r\n            \"type\": \"proximity\",\r\n            \"timeout\": 600,\r\n            \"options\": {\r\n                \"command\": \"exivity:gc\",\r\n                \"arguments\": \"\"\r\n            }\r\n        },\r\n        \"relationships\": {\r\n            \"workflow\": {\r\n                \"data\": {\r\n                    \"type\": \"workflow\",\r\n                    \"id\": \"{{workflow_id}}\"\r\n                }\r\n            },\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 05 Sep 2023 12:12:06 GMT"},{"key":"Date","value":"Tue, 05 Sep 2023 12:12:06 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X5eb6204a080e3ddb43abe9c1b20c0ad0"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-aNhPVUIiCFqHNpWIMpPS16EnQaBn1XZw';style-src 'self' 'nonce-aNhPVUIiCFqHNpWIMpPS16EnQaBn1XZw';font-src 'self' data:"},{"key":"Request-Id","value":"9568e55d-7e3d-49cf-98a3-cf8c23a8b71b"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"23\",\n        \"attributes\": {\n            \"type\": \"proximity\",\n            \"options\": {\n                \"command\": \"exivity:gc\",\n                \"arguments\": \"\"\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/23\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/23/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/23/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/23/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/23/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/23/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/23/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"43f32505-246f-4fca-8731-c2f188d0eb96"},{"name":"Add a new budget step (development only)","event":[{"listen":"test","script":{"id":"7cade598-d1c0-4cef-87d1-472ad01f1a6f","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","\t\t\"type\": \"evaluate_budget\",","\t\t\"timeout\": 600,","    });","\tpm.expect(response.data.attributes.options).to.be.an('object');","    pm.expect(response.data.attributes.options).to.have.keys([\"budget_id\"]);"," });","","pm.environment.set(\"budget_workflowstep_id\", response.data.id);","console.log('SET budget_workflowstep_id: ' + pm.environment.get(\"budget_workflowstep_id\"));","pm.environment.set(\"workflowstep_id\", response.data.id);","console.log('SET workflowstep_id: ' + pm.environment.get(\"workflowstep_id\"));"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"c82c1cc2-f66b-4967-b67b-ed78927a42aa","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"2d69feef-f0fe-4a32-b76f-f3220a5b090f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"attributes\": {\r\n            \"type\": \"evaluate_budget\",\r\n            \"timeout\": 600,\r\n            \"options\": {\r\n                \"budget_id\": \"234\"\r\n            }\r\n        },\r\n        \"relationships\": {\r\n            \"workflow\": {\r\n                \"data\": {\r\n                    \"type\": \"workflow\",\r\n                    \"id\": \"{{workflow_id}}\"\r\n                }\r\n            },\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/workflowsteps","description":"<h4 id=\"options\">Options</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>budget_id</td>\n<td>numeric</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"67158b88-834b-445c-b436-9ef02f3ed8f6","name":"Add a new budget step (development only)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"attributes\": {\r\n            \"type\": \"evaluate_budget\",\r\n            \"timeout\": 600,\r\n            \"options\": {\r\n                \"budget_id\": \"1\"\r\n            }\r\n        },\r\n        \"relationships\": {\r\n            \"workflow\": {\r\n                \"data\": {\r\n                    \"type\": \"workflow\",\r\n                    \"id\": \"{{workflow_id}}\"\r\n                }\r\n            },\r\n            \"previous\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"workflowstep\",\r\n\t\t\t\t\t\"id\": \"{{workflowstep_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n        }\r\n    }\r\n}"},"url":"{{base_url}}/v1/workflowsteps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 12 Sep 2023 10:20:46 GMT"},{"key":"Date","value":"Tue, 12 Sep 2023 10:20:46 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/WorkflowStep/WorkflowSteps"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X73987a2d7a5c059750e4a0962872dce9"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-XLKILcZIBwPi2gzPAhfU8Huu0v5Sjcze';style-src 'self' 'nonce-XLKILcZIBwPi2gzPAhfU8Huu0v5Sjcze';font-src 'self' data:"},{"key":"Request-Id","value":"a8f8c44d-8224-476e-a4e7-0e47865475be"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"27\",\n        \"attributes\": {\n            \"type\": \"evaluate_budget\",\n            \"options\": {\n                \"budget_id\": \"1\"\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/27\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/27/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/27/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/27/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/27/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/27/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/27/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"2d69feef-f0fe-4a32-b76f-f3220a5b090f"},{"name":"Retrieve a list of steps","event":[{"listen":"test","script":{"id":"5a5b54a8-535f-4c7a-b279-b1e5167d3013","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"2e441bd7-ef0d-45d4-9c5d-db2235d0882e","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"d556aca6-a7b5-4e92-843b-f524f9f24d07","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowsteps?page[limit]&page[offset]&sort=&filter[attribute]&include=","urlObject":{"path":["v1","workflowsteps"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>workflow</code>, <code>steplogs</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"61a5db10-1e00-478b-b404-d89ead0d1f73","name":"Retrieve a list of steps","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowsteps?page[limit]&page[offset]&sort=&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","workflowsteps"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":"","description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `workflow`, `steplogs`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Thu, 14 Apr 2022 14:36:43 GMT"},{"key":"Date","value":"Thu, 14 Apr 2022 14:36:43 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X90990ab50795a57558b2c0441a1e8dcb"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-FVMzub1Eed1xzTheMGxmZ7owkgWEDoHO';style-src 'self' 'nonce-FVMzub1Eed1xzTheMGxmZ7owkgWEDoHO';font-src 'self' data:"},{"key":"Request-Id","value":"9ed02746-64e3-4937-9154-48727cc248f0"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"20\",\n            \"attributes\": {\n                \"prev\": null,\n                \"next\": \"19\",\n                \"type\": \"proximity\",\n                \"options\": {\n                    \"command\": \"exivity:gc\",\n                    \"arguments\": \"\"\n                },\n                \"timeout\": 600,\n                \"wait\": true,\n                \"sort\": 0\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/20\"\n            },\n            \"relationships\": {\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/20/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/20/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/20/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/20/steplogs\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"19\",\n            \"attributes\": {\n                \"prev\": \"20\",\n                \"next\": null,\n                \"type\": \"proximity\",\n                \"options\": {\n                    \"command\": \"exivity:gc\",\n                    \"arguments\": \"\"\n                },\n                \"timeout\": 600,\n                \"wait\": true,\n                \"sort\": 0\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/19\"\n            },\n            \"relationships\": {\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/19/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/19/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/19/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/19/steplogs\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"count\": 2,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/workflowsteps?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/workflowsteps?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/workflowsteps?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"},{"id":"01ba2001-16e8-4584-81a4-51c1eef68c7e","name":"Retrieve a list of steps including previous steps","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowsteps?page[limit]&page[offset]&sort=&filter[attribute]&include=previous","host":["{{base_url}}"],"path":["v1","workflowsteps"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":"","description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"previous","description":"Include additional related resources. Possible values: `workflow`, `steplogs`."}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 21 Oct 2025 09:01:18 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"01K8300QQS9Z1PBGHDSJQE9ZBS"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"01K8300QQS9Z1PBGHDSJQE9ZBS"},{"key":"ETag","value":"\"90e49e7b4146d0290f543ca230341ca2\""},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';font-src 'self' data:;form-action 'self';frame-src 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-tCtar6atK79YXCVQgwUcM3GbsoVr9dVf';style-src 'self' 'nonce-tCtar6atK79YXCVQgwUcM3GbsoVr9dVf'"},{"key":"Request-Id","value":"443d9707-20fd-4834-aae1-a84d64f9341d"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"3\",\n            \"attributes\": {\n                \"type\": \"transcript\",\n                \"options\": {\n                    \"name\": \"Workflow_transformer\",\n                    \"from_date\": -2,\n                    \"to_date\": -1,\n                    \"environment_id\": null\n                },\n                \"timeout\": 600,\n                \"wait\": true\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/3\"\n            },\n            \"relationships\": {\n                \"previous\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/3/relationships/previous\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/3/previous\"\n                    },\n                    \"data\": {\n                        \"type\": \"workflowstep\",\n                        \"id\": \"2\"\n                    }\n                },\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/3/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/3/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/3/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/3/steplogs\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"4\",\n            \"attributes\": {\n                \"type\": \"edify\",\n                \"options\": {\n                    \"report_id\": \"5\",\n                    \"from_date\": -2,\n                    \"to_date\": -1\n                },\n                \"timeout\": 600,\n                \"wait\": true\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/4\"\n            },\n            \"relationships\": {\n                \"previous\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/4/relationships/previous\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/4/previous\"\n                    },\n                    \"data\": {\n                        \"type\": \"workflowstep\",\n                        \"id\": \"3\"\n                    }\n                },\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/4/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/4/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/4/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/4/steplogs\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"5\",\n            \"attributes\": {\n                \"type\": \"execute\",\n                \"options\": {\n                    \"command\": \"echo \\\"testing\\\"\"\n                },\n                \"timeout\": 600,\n                \"wait\": true\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/5\"\n            },\n            \"relationships\": {\n                \"previous\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/5/relationships/previous\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/5/previous\"\n                    },\n                    \"data\": null\n                },\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/5/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/5/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/5/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/5/steplogs\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"2\",\n            \"attributes\": {\n                \"type\": \"use\",\n                \"options\": {\n                    \"name\": \"Test_extractor_-_461\",\n                    \"from_date\": -2,\n                    \"to_date\": 0,\n                    \"arguments\": \"arg3 arg4\",\n                    \"environment_id\": null\n                },\n                \"timeout\": 600,\n                \"wait\": true\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/2\"\n            },\n            \"relationships\": {\n                \"previous\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/2/relationships/previous\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/2/previous\"\n                    },\n                    \"data\": {\n                        \"type\": \"workflowstep\",\n                        \"id\": \"7\"\n                    }\n                },\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/2/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/2/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/2/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/2/steplogs\"\n                    }\n                }\n            }\n        },\n        {\n            \"type\": \"workflowstep\",\n            \"id\": \"7\",\n            \"attributes\": {\n                \"type\": \"evaluate_budget\",\n                \"options\": {\n                    \"budget_id\": \"234\"\n                },\n                \"timeout\": 600,\n                \"wait\": true\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowsteps/7\"\n            },\n            \"relationships\": {\n                \"previous\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/7/relationships/previous\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/7/previous\"\n                    },\n                    \"data\": null\n                },\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/7/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/7/workflow\"\n                    }\n                },\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowsteps/7/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowsteps/7/steplogs\"\n                    }\n                }\n            }\n        }\n    ],\n    \"included\": [],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 5,\n            \"count\": 5,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/workflowsteps?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=previous&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/workflowsteps?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=previous&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/workflowsteps?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=previous&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"d556aca6-a7b5-4e92-843b-f524f9f24d07"},{"name":"Retrieve a step","event":[{"listen":"test","script":{"id":"93a95324-aef9-4b25-9653-91d6f5c40d08","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"proximity_workflowstep_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","    \"type\": \"proximity\",","    \"timeout\": 600","  });","  pm.expect(response.data.attributes.options).to.be.an('object');","  pm.expect(response.data.attributes.options).to.include({","    \"command\": \"exivity:gc\",","        \"arguments\": \"\"","  });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"b7983898-a75d-4aef-8161-7145b7cc55f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowsteps/:workflowstep_id?include=","urlObject":{"path":["v1","workflowsteps",":workflowstep_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>steplogs</code>, <code>workflow</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"type":"any","value":"{{proximity_workflowstep_id}}","key":"workflowstep_id"}]}},"response":[{"id":"529f83a5-da49-4439-bfad-0cc229cb1130","name":"Retrieve a step","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowsteps/:workflowstep_id?include=","host":["{{base_url}}"],"path":["v1","workflowsteps",":workflowstep_id"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `steplogs`, `workflow`."}],"variable":[{"key":"workflowstep_id","value":"{{proximity_workflowstep_id}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Thu, 14 Apr 2022 14:35:34 GMT"},{"key":"Date","value":"Thu, 14 Apr 2022 14:35:34 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xf01dd318783334a864c9b84b4eb2cdb5"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-b2zRiIZ7nq2NNPihTgGBPRDyxvH3QADi';style-src 'self' 'nonce-b2zRiIZ7nq2NNPihTgGBPRDyxvH3QADi';font-src 'self' data:"},{"key":"Request-Id","value":"0ce36394-0f1f-4605-b7cb-76a40587a444"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"19\",\n        \"attributes\": {\n            \"prev\": null,\n            \"next\": null,\n            \"type\": \"proximity\",\n            \"options\": {\n                \"command\": \"exivity:gc\",\n                \"arguments\": \"\"\n            },\n            \"timeout\": 600,\n            \"wait\": true,\n            \"sort\": 0\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/19\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/19/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/19/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/19/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/19/steplogs\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"b7983898-a75d-4aef-8161-7145b7cc55f8"},{"name":"Update a step","event":[{"listen":"test","script":{"id":"558cd072-9f8d-45a3-9891-46fa0ed91693","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowstep');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"execute_workflowstep_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.include({","        \"type\": \"execute\",","        \"timeout\": 600","  });","  pm.expect(response.data.attributes.options).to.be.an('object');","  pm.expect(response.data.attributes.options).to.include({\"command\": \"echo \\\"testing\\\"\"});","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"27dea6f6-e979-447d-908f-aef5c96e908a","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireWorkflow)\r","    .then(api.requireWorkflowExecuteStep)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"15f267b9-7dd0-4090-8065-6e0069ab013c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"id\": \"{{execute_workflowstep_id}}\",\r\n        \"attributes\": {\r\n            \"options\": {\r\n                \"command\": \"echo \\\"testing\\\"\"\r\n            }\r\n        }\r\n    }\r\n}\r\n"},"url":"{{base_url}}/v1/workflowsteps/:workflowstep_id","urlObject":{"path":["v1","workflowsteps",":workflowstep_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{execute_workflowstep_id}}","key":"workflowstep_id"}]}},"response":[{"id":"66f81b73-2737-49cd-aecf-ca6f2079663a","name":"Update a step","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"workflowstep\",\r\n        \"id\": \"{{execute_workflowstep_id}}\",\r\n        \"attributes\": {\r\n            \"options\": {\r\n                \"command\": \"echo \\\"testing\\\"\"\r\n            }\r\n        }\r\n    }\r\n}\r\n"},"url":{"raw":"{{base_url}}/v1/workflowsteps/:workflowstep_id","host":["{{base_url}}"],"path":["v1","workflowsteps",":workflowstep_id"],"variable":[{"key":"workflowstep_id","value":"{{execute_workflowstep_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 05 Sep 2023 15:12:29 GMT"},{"key":"Date","value":"Tue, 05 Sep 2023 15:12:29 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xdf934bedde43dee25891d357e40c8187"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-Etg2xNhOWz0cnqvR27gIq1Ge0KKvs8OM';style-src 'self' 'nonce-Etg2xNhOWz0cnqvR27gIq1Ge0KKvs8OM';font-src 'self' data:"},{"key":"Request-Id","value":"fe5807f6-a477-45ce-806d-c43df4e5c88f"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"workflowstep\",\n        \"id\": \"91\",\n        \"attributes\": {\n            \"type\": \"execute\",\n            \"options\": {\n                \"command\": \"echo \\\"testing\\\"\"\n            },\n            \"timeout\": 600,\n            \"wait\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/workflowsteps/91\"\n        },\n        \"relationships\": {\n            \"workflow\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/91/relationships/workflow\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/91/workflow\"\n                }\n            },\n            \"steplogs\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/91/relationships/steplogs\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/91/steplogs\"\n                }\n            },\n            \"previous\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/workflowsteps/91/relationships/previous\",\n                    \"related\": \"http://localhost:8012/v1/workflowsteps/91/previous\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"15f267b9-7dd0-4090-8065-6e0069ab013c"},{"name":"Fetch step logs","event":[{"listen":"test","script":{"id":"b0d76dab-9d1b-4c38-9b10-995104d99109","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains logs data\", function () {","    pm.expect(response.logs).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"0926bf5f-6c38-45fc-95c8-3e90f1a90868","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/workflowsteps/:workflowstep_id/logs","urlObject":{"path":["v1","workflowsteps",":workflowstep_id","logs"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{workflowstep_id}}","key":"workflowstep_id"}]}},"response":[{"id":"cb4dc1fc-fc5d-47b3-8494-d4590394ae67","name":"Fetch step logs","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/workflowsteps/:workflowstep_id/logs","host":["{{base_url}}"],"path":["v1","workflowsteps",":workflowstep_id","logs"],"variable":[{"id":"ae713b18-3001-42ec-92f1-f931f05e40e0","key":"workflowstep_id","value":"{{workflowstep_id}}","type":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:33:11 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:33:11 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X6d31f78559410b1af9f570f0f81a89a3"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X6d31f78559410b1af9f570f0f81a89a3"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-5dH3IGWcQadd9ckGMMC4M563HISZfL9k';style-src 'self' 'nonce-5dH3IGWcQadd9ckGMMC4M563HISZfL9k';font-src 'self' data:"},{"key":"Request-Id","value":"6ad16fe0-b4c8-434b-922e-da6479f2f597"}],"cookie":[],"responseTime":null,"body":"{\n    \"logs\": [\n        {\n            \"start_timestamp\": \"2022-02-04T10:31:31Z\",\n            \"end_timestamp\": \"2022-02-04T10:31:31Z\",\n            \"success\": false,\n            \"status\": 3,\n            \"command\": \"{\\\"job_id\\\":2,\\\"params\\\":\\\"\\\\\\\"testing\\\\\\\"\\\",\\\"program\\\":\\\"echo\\\",\\\"timeout\\\":600,\\\"to_date\\\":20220204,\\\"user_id\\\":\\\"469e01d8-1c95-4923-8bc6-1aebfdf30bc8\\\",\\\"from_date\\\":20220204}\",\n            \"output\": \"\",\n            \"logfile\": null\n        }\n    ]\n}"}],"_postman_id":"0926bf5f-6c38-45fc-95c8-3e90f1a90868"},{"name":"Delete a step","event":[{"listen":"test","script":{"id":"164386e5-18a5-496c-bd28-2def05ec2c13","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET workflowstep_id');","pm.environment.unset(\"workflowstep_id\");",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"a0b63334-62bd-455f-a102-3972fc825158","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireWorkflow)\r","    .then(api.requireWorkflowExecuteStep)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"d2642594-16e5-4cd7-81ed-dc60cfe6c15e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflowsteps/:workflowstep_id","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","workflowsteps",":workflowstep_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{proximity_workflowstep_id}}","key":"workflowstep_id"}]}},"response":[{"id":"332ccd62-ec4a-4712-aae0-76e699622119","name":"Delete a step","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/workflowsteps/:workflowstep_id","host":["{{base_url}}"],"path":["v1","workflowsteps",":workflowstep_id"],"variable":[{"id":"04ef55e1-346e-49be-afc8-0c64fad2c6a2","key":"workflowstep_id","value":"{{execute_workflowstep_id}}","type":"string"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:33:40 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:33:40 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X64eb6aebad991aaf3deffca888631f93"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X64eb6aebad991aaf3deffca888631f93"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-2BbEytlXcgoOAOl2sdJlceNEwNrovvfc';style-src 'self' 'nonce-2BbEytlXcgoOAOl2sdJlceNEwNrovvfc';font-src 'self' data:"},{"key":"Request-Id","value":"4f251025-cf47-41ca-ae6b-34bb5b3af567"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"d2642594-16e5-4cd7-81ed-dc60cfe6c15e"}],"id":"603b3894-1fec-4683-9089-9c4f47b84b04","description":"<p>A workflow requires one or more steps. These steps are executed when a workflow is run.</p>\n<h4 id=\"the-workflow-step-object\">The Workflow Step Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>enum( <code>extract</code>, <code>transform</code>, <code>prepare_report</code>, <code>execute</code>, <code>proximity</code>, <code>publish_report</code>, <code>evaluate_budget</code> )</td>\n<td>📝 editable</td>\n<td>Workflow step type</td>\n</tr>\n<tr>\n<td>options</td>\n<td><em>required, array, values depend on</em> <code>type</code></td>\n<td>📝 editable</td>\n<td>Each different step <code>type</code> has different options, which are documentated in the \"Add a new ... step\" sections.</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td><em>integer</em></td>\n<td>📝 editable</td>\n<td>In seconds, default: 3600,min:1, max:86400</td>\n</tr>\n<tr>\n<td>wait</td>\n<td><em>boolean</em></td>\n<td>📝 editable</td>\n<td>If false, the step will run simultaneously with the previous step.  <br />If true, all previous steps will finish executing before this steps is started.</td>\n</tr>\n<tr>\n<td><del>sort</del></td>\n<td><del><em>numeric</em></del></td>\n<td></td>\n<td><em>deprecated, use previous relationship instead</em></td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>previous</td>\n<td>hasOne</td>\n<td>workflowstep</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"92db3ac8-cdda-40c2-bfd2-51a20ab98901","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"165bde10-ad84-4cf5-a05c-96f680ee117e","type":"text/javascript","exec":[""]}}],"_postman_id":"603b3894-1fec-4683-9089-9c4f47b84b04"},{"name":"/workflowruns","item":[{"name":"Retrieve a list of workflow runs","event":[{"listen":"test","script":{"id":"43cdd595-34ac-4daf-b9fd-c752d610b552","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data[0]).to.be.an('object');","    pm.expect(response.data[0].type).to.eql('workflowrun');","});","","// Set the workflow run ID to the first response ID","pm.environment.set(\"workflowrun_id\", response.data[0].id);","console.log('SET workflowrun_id: ' + pm.environment.get(\"workflowrun_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"070d88d0-519a-4efa-8783-d4708d57862b","exec":["const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.requireWorkflow)","    .then(api.requireWorkflowExecuteStep)","    .then(api.runWorkflow)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"d6ec6c81-b826-4a53-aa2a-242a3e7a6a48","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowruns?page[limit]=&page[offset]=&sort&filter[attribute]&include=","urlObject":{"path":["v1","workflowruns"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":""},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":""},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>workflow</code>, <code>steplogs</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"67451ab2-582a-40c8-bab6-2f5a040a714b","name":"Retrieve a list of workflow runs","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowruns?page[limit]=&page[offset]=&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","workflowruns"],"query":[{"key":"page[limit]","value":"","description":"Limit the amount of results returned"},{"key":"page[offset]","value":"","description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `workflow`, `steplogs`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 23 Apr 2024 09:57:43 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X361912fffeaa0aa3ea79862de40908f0"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-DZCsXW8MaOvlYNw0adl9lCK8zEWWan4w';style-src 'self' 'nonce-DZCsXW8MaOvlYNw0adl9lCK8zEWWan4w';font-src 'self' data:"},{"key":"Request-Id","value":"b5df2af0-d951-4fbf-bd15-bb49e03b3da1"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"workflowrun\",\n            \"id\": \"7\",\n            \"attributes\": {\n                \"start_date\": \"2024-04-23T09:57:42Z\",\n                \"end_date\": \"2024-04-23T09:57:42Z\",\n                \"status\": \"failed\"\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/workflowruns/7\"\n            },\n            \"relationships\": {\n                \"steplogs\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowruns/7/relationships/steplogs\",\n                        \"related\": \"http://localhost:8012/v1/workflowruns/7/steplogs\"\n                    }\n                },\n                \"workflow\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/workflowruns/7/relationships/workflow\",\n                        \"related\": \"http://localhost:8012/v1/workflowruns/7/workflow\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"count\": 1,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/workflowruns?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/workflowruns?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/workflowruns?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"d6ec6c81-b826-4a53-aa2a-242a3e7a6a48"},{"name":"Retrieve a workflow run","event":[{"listen":"test","script":{"id":"72cbea9b-025b-4d31-81f4-3f5ab9324787","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('workflowrun');","    pm.expect(response.data.attributes.start_date).to.be.a('string');","    pm.expect(response.data.attributes.end_date).to.be.a('string');","    pm.expect(response.data.attributes.status).to.be.a('string');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"2b407300-f61d-496e-ab1e-9713fd5d8873","exec":[""],"type":"text/javascript"}}],"id":"2de7f48b-9532-4194-bba1-54991681d0cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowruns/:workflowrun_id?include=","urlObject":{"path":["v1","workflowruns",":workflowrun_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>steplogs</code>, <code>workflow</code></p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"type":"string","value":"{{workflowrun_id}}","key":"workflowrun_id"}]}},"response":[],"_postman_id":"2de7f48b-9532-4194-bba1-54991681d0cc"}],"id":"f85bcd76-a3a7-43bc-9e3b-7fe8d5594b8a","description":"<p>⚠️ <strong>We plan to deprecate these endpoints in the next version of Exivity. A new</strong> <strong><code>/jobs</code></strong> <strong>endpoint will be added which will offer the same functionality.</strong></p>\n<p>Runs contain workflow status information of workflow runs.</p>\n<h4 id=\"the-workflow-run-object\">The Workflow Run Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>start_date</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n</tr>\n<tr>\n<td>end_date</td>\n<td><em>datetime</em></td>\n<td>👁 read-only</td>\n</tr>\n<tr>\n<td>status</td>\n<td><em>enum</em> (<code>started</code>, <code>success</code>, <code>failed</code>, <code>timed_out</code>, <code>invalid</code>, <code>internal_error</code>, <code>killed</code>)</td>\n<td>👁 read-only</td>\n</tr>\n</tbody>\n</table>\n</div><p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>workflow</td>\n<td>hasOne</td>\n<td>workflow</td>\n<td>✔️</td>\n</tr>\n<tr>\n<td>steplogs</td>\n<td>hasMany</td>\n<td>workflowsteplog</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"5e9325f4-2802-48d8-b500-e73fa131a4d5","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"a026a193-aec9-4bdc-84ab-ff5d0a27c104","type":"text/javascript","exec":[""]}}],"_postman_id":"f85bcd76-a3a7-43bc-9e3b-7fe8d5594b8a"},{"name":"/workflowsteplogs","item":[{"name":"Retrieve a list of workflow step logs","event":[{"listen":"prerequest","script":{"id":"5437bce0-054a-4e27-a487-d89712cf7c02","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireWorkflow)\r","    .then(api.requireWorkflowExecuteStep)\r","    .then(api.runWorkflow)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}},{"listen":"test","script":{"id":"08f4b1f9-abcb-4591-b091-c2ed86c30561","exec":["// Since running a workflow is an async process, so we can't know","// for sure that a workflowsteplog has any info, so just check for a basic valid format","","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","    if (response.data.length > 0 ) {","        // We have some results to validate","        pm.expect(response.data[0]).to.be.an('object');","        pm.expect(response.data[0].type).to.eql('workflowsteplog');","        ","        pm.environment.set(\"workflowsteplog_id\", response.data[0].id);","        console.log('SET workflowsteplog_id: ' + pm.environment.get(\"workflowsteplog_id\"));","    }","});","pm.test(\"Response contains meta\", function () {","    pm.expect(response.meta).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"f3e0a151-9201-442d-a920-ed8a72843583","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowsteplogs?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","workflowsteplogs"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>run</code>, <code>step</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"f3e0a151-9201-442d-a920-ed8a72843583"},{"name":"Retrieve a workflow step log","event":[{"listen":"test","script":{"id":"72cbea9b-025b-4d31-81f4-3f5ab9324787","exec":["// Since running a workflow is an async process, so we can't know","// for sure that a workflowsteplog has any info, so just check for a basic valid format","","pm.test(\"Check status code\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200,404]);","});","","const response = pm.response.json();","console.log(response)","","if (pm.response.code == 200) {","    // Valid workflow step log ID","    pm.test(\"Response contains correct data\", function () {","        pm.expect(response.data).to.be.an('object');","        pm.expect(response.data.type).to.eql('workflowsteplog');","    });","    ","} else {","    // Invalid ID, should get error","     pm.test(\"Response contains correct error\", function () {","        pm.expect(response.errors).to.be.an('array');","        pm.expect(response.errors[0]).to.be.an('object');","        pm.expect(response.errors[0].title).to.eql('NotFoundException');","        pm.expect(response.errors[0].detail).to.eql('WorkflowStepLog could not be found.');","        pm.expect(response.errors[0].status).to.eql(404);","    });","}",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"03871178-f567-4067-a66f-8d26f2306652","exec":[""],"type":"text/javascript"}}],"id":"14fb856a-a5a2-47aa-816f-3f73a976b131","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/workflowsteplogs/:workflowsteplog_id?include=","urlObject":{"path":["v1","workflowsteplogs",":workflowsteplog_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>run</code>, <code>step</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[{"type":"string","value":"{{workflowsteplog_id}}","key":"workflowsteplog_id"}]}},"response":[],"_postman_id":"14fb856a-a5a2-47aa-816f-3f73a976b131"}],"id":"f1c86299-96e1-4487-a3c3-220b24055854","description":"<p>⚠️ We plan to deprecate these endpoints in the next version of Exivity. A new <code>/jobs</code> endpoint will be added which will offer the same functionality.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"af4a6fff-43a9-4bd5-822c-e4d2ccb980c8","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"7b218301-d65a-4616-9ab8-e479895e0790","type":"text/javascript","exec":[""]}}],"_postman_id":"f1c86299-96e1-4487-a3c3-220b24055854"}],"id":"8ac2323d-98f4-483d-939d-5c1531d3e016","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"55f271ea-b387-4858-9bb6-7faa8c7bc8f7","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"7b53b683-2f28-4b04-838b-330110f16618","type":"text/javascript","exec":[""]}}],"_postman_id":"8ac2323d-98f4-483d-939d-5c1531d3e016","description":""},{"name":"Profile","item":[{"name":"/notificationchannels","item":[{"name":"Get all notification channels","event":[{"listen":"test","script":{"id":"f6a56d93-e63f-48a4-8478-e75d2ae21d76","exec":["pm.test(\"Status code is 200\", function () {","     pm.response.to.have.status(200);"," });","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","     pm.expect(response.data).to.be.an('array');","});",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"8c31ea00-9d7d-40de-9c00-53c50b68e9e3","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"0a406172-a412-4e4a-807f-ce306c9b9c78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/notificationchannels?include=","urlObject":{"path":["v1","notificationchannels"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Possible values: <code>subscriptions</code>, <code>user</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"0a406172-a412-4e4a-807f-ce306c9b9c78"},{"name":"Create a new channel","event":[{"listen":"test","script":{"id":"a3761d66-2976-47e4-8dc3-f6cf4587d8a6","exec":["pm.test(\"Status code is 201\", function () {","     pm.response.to.have.status(201);"," });","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('notificationchannel');","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes.info.recipient).to.be.a('string');","    pm.expect(response.data.attributes.name).to.be.a('string');","    pm.expect(response.data.attributes.type).to.be.an('string');","    pm.expect(response.data.attributes.info.recipient).to.be.a('string');","});","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"notification_channel_id\", response.data.id);","console.log('SET notification_channel_id: ' + pm.environment.get(\"notification_channel_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"e6c9474c-9811-4e71-85f5-a190a77a6960","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"3455887d-0bf0-410e-bc59-50682d79acca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationchannel\",\n        \"attributes\": {\n            \"type\": \"mail\",\n            \"name\": \"E-mail for someone\",\n            \"info\": {\n            \t\"recipient\": \"someone@exivity.com\"\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}\n"},"url":"{{base_url}}/v1/notificationchannels","urlObject":{"path":["v1","notificationchannels"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"03fa26a1-953c-46c9-a3a4-b872f0c54d0f","name":"Phone number","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationchannel\",\n        \"attributes\": {\n            \"type\": \"nexmo\",\n            \"name\": \"My phone number\",\n            \"info\": {\n            \t\"recipient\": \"+123456789\"\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}\n"},"url":"{{base_url}}/v1/notificationchannels"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Wed, 03 Jul 2019 08:30:32 GMT"},{"key":"Date","value":"Wed, 03 Jul 2019 08:30:32 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.3.6"},{"key":"Location","value":"https://localhost:8012/v1/notificationchannel/5"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xe5f83c7faa917c5a431a80222d484915"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationchannel\",\n        \"id\": \"5\",\n        \"attributes\": {\n            \"name\": \"My phone number\",\n            \"type\": \"nexmo\",\n            \"info\": {\n                \"recipient\": \"+31612345678\"\n            }\n        },\n        \"links\": {\n            \"self\": \"https://localhost:8012/v1/notificationchannels/5\"\n        }\n    }\n}"},{"id":"550f2258-5d4e-4461-b0d9-3953617aa51d","name":"Webhook","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationchannel\",\n        \"attributes\": {\n            \"type\": \"webhook\",\n            \"name\": \"My webhook\",\n            \"info\": {\n                \"recipient\": \"http://host/path\", // (validated as URL, required)\n                \"headers\": {\n                    \"Authentication\": \"Bearer XYZ\",\n                    \"X-Custom\": \"...\",\n                    \"Content-Type\": \"foo/bar\"\n                } // (optional, default: {}),\n                \"tls_verification\": true // boolean (required, default: true),\n                \"include_attachments\": false // boolean (optional, default: false)\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}\n"},"url":"{{base_url}}/v1/notificationchannels"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null},{"id":"88c87073-695d-4301-8152-51dec8ece76f","name":"Slack channel","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationchannel\",\n        \"attributes\": {\n            \"type\": \"slack\",\n            \"name\": \"My slack channel\",\n            \"info\": {\n            \t\"recipient\": \"https://hooks.slack.com/services/abc123def456ghi789jkl\"\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}\n"},"url":"{{base_url}}/v1/notificationchannels"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Wed, 03 Jul 2019 08:30:32 GMT"},{"key":"Date","value":"Wed, 03 Jul 2019 08:30:32 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.3.6"},{"key":"Location","value":"https://localhost:8012/v1/notificationchannel/5"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xe5f83c7faa917c5a431a80222d484915"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationchannel\",\n        \"id\": \"7\",\n        \"attributes\": {\n            \"name\": \"My slack channel\",\n            \"type\": \"slack\",\n            \"info\": {\n                \"recipient\": \"https://hooks.slack.com/services/abc123def456ghi789jkl\"\n            }\n        },\n        \"links\": {\n            \"self\": \"https://localhost:8012/v1/notificationchannels/7\"\n        }\n    }\n}"},{"id":"a7ef877c-0b10-4236-bd13-bdbb0ad36603","name":"Email address","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationchannel\",\n        \"attributes\": {\n            \"type\": \"mail\",\n            \"name\": \"E-mail for someone\",\n            \"info\": {\n            \t\"recipient\": \"someone@example.com\"\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}\n"},"url":"{{base_url}}/v1/notificationchannels"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Wed, 03 Jul 2019 08:33:12 GMT"},{"key":"Date","value":"Wed, 03 Jul 2019 08:33:12 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.3.6"},{"key":"Location","value":"https://localhost:8012/v1/notificationchannel/6"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X4b3994622abc5d8598b15611f3474780"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationchannel\",\n        \"id\": \"6\",\n        \"attributes\": {\n            \"name\": \"E-mail for someone\",\n            \"type\": \"mail\",\n            \"info\": {\n                \"recipient\": \"someone@example.com\",\n                \"cc\": null,\n                \"bcc\": null\n            }\n        },\n        \"links\": {\n            \"self\": \"https://localhost:8012/v1/notificationchannels/6\"\n        }\n    }\n}"}],"_postman_id":"3455887d-0bf0-410e-bc59-50682d79acca"},{"name":"Get a channel","event":[{"listen":"test","script":{"id":"65af5bfa-d4fd-4bb4-b1de-795300a4e6d1","exec":["// Status","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","// Json body","pm.test(\"Response has a valid JSON body\", function () {","     pm.response.to.be.withBody;","     pm.response.to.be.json;","});","","// Check Json","var jsonData = pm.response.json();","console.log(jsonData);","pm.test(\"Response has valid attributes\", function() {","    pm.expect(jsonData).to.have.property('data');","    pm.expect(jsonData.data).to.have.property('attributes');","    pm.expect(jsonData.data).to.have.property('links');","    pm.expect(jsonData.data.attributes).to.have.property('type');","    pm.expect(jsonData.data.attributes).to.have.property('info');","    ","    pm.expect(jsonData).to.have.property('data');","    pm.expect(jsonData.data).to.have.property('relationships');","});","","pm.test(\"Response has valid relationship with subscription\", function() {","","    pm.expect(jsonData.data.relationships).to.have.property('subscriptions');","});","","pm.test(\"Response has valid relationship with user\", function() {","    pm.expect(jsonData).to.have.property('data');","    pm.expect(jsonData.data).to.have.property('relationships');","    pm.expect(jsonData.data.relationships).to.have.property('user');","    ","    var user = jsonData.data.relationships.user;","    pm.expect(user.data).to.have.property('id');","    pm.expect(user.data).to.have.property('type');","    pm.expect(user.data.type).to.be.eql('user');","});","","","    ","    "],"type":"text/javascript"}}],"id":"c374ef78-2bbb-4087-92ce-cadd6f7eb4f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/notificationchannels/{{notification_channel_id}}?include=subscriptions,user","urlObject":{"path":["v1","notificationchannels","{{notification_channel_id}}"],"host":["{{base_url}}"],"query":[{"key":"include","value":"subscriptions,user"}],"variable":[]}},"response":[],"_postman_id":"c374ef78-2bbb-4087-92ce-cadd6f7eb4f4"},{"name":"Edit a channel","event":[{"listen":"test","script":{"id":"d1de786d-2590-4fd2-9fba-b555757831aa","exec":["// Status","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","// Json body","pm.test(\"Response has a valid JSON body\", function () {","     pm.response.to.be.withBody;","     pm.response.to.be.json;","});","","// Check Json","var jsonData = pm.response.json();","console.log(jsonData);","pm.test(\"Response has valid attributes\", function() {","    pm.expect(jsonData).to.have.property('data');","    pm.expect(jsonData.data).to.have.property('attributes');","    pm.expect(jsonData.data).to.have.property('links');","    pm.expect(jsonData.data.attributes).to.have.property('type');","    pm.expect(jsonData.data.attributes).to.have.property('info');","    pm.expect(jsonData.data.attributes.info).to.have.property('recipient');","});","","pm.test(\"Email address should have changed\", function() {","    pm.expect(jsonData.data.attributes.info.recipient).to.be.eql('anybody@exivity.com');","});",""],"type":"text/javascript"}}],"id":"336433a1-3a76-4f87-8b8d-e2a90c1320fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"notificationchannel\",\r\n\t\t\"id\": \"{{notification_channel_id}}\",\r\n\t\t\"attributes\": {\r\n            \"info\": {\r\n            \t\"recipient\": \"anybody@exivity.com\"\r\n        \t}\r\n        }\r\n\t}\r\n}"},"url":"{{base_url}}/v1/notificationchannels/{{notification_channel_id}}","urlObject":{"path":["v1","notificationchannels","{{notification_channel_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"336433a1-3a76-4f87-8b8d-e2a90c1320fd"},{"name":"Delete a channel","event":[{"listen":"test","script":{"id":"23271e99-ef6e-4e0e-baac-6ef2b79085d4","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","","console.log('UNSET notification_channel_id');","pm.environment.unset(\"notification_channel_id\");"],"type":"text/javascript"}}],"id":"43338808-72df-449b-838d-cbf8a3b12b6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/notificationchannels/{{notification_channel_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","notificationchannels","{{notification_channel_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"0ed88ed3-deb6-4b10-9f7b-81bc536058e0","name":"Delete a channel","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/notificationchannels/{{notification_channel_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 12:35:30 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 12:35:30 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xf770f9b2f4b14bfed3fce893c27eeac2"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xf770f9b2f4b14bfed3fce893c27eeac2"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-TNpMmGvxQag0NrwbKtzQMfbBbml5EMuE';style-src 'self' 'nonce-TNpMmGvxQag0NrwbKtzQMfbBbml5EMuE';font-src 'self' data:"},{"key":"Request-Id","value":"9eb267d5-e72b-4be9-b880-8a2680113543"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"43338808-72df-449b-838d-cbf8a3b12b6e"}],"id":"e5c97e74-7d78-489d-a527-4296a7794791","description":"<p>Notifications are messages that are sent to a specific channel (e-mail, SMS, Slack, webhook) based on an event such as a Published Report, a Budget Evaluation, or a Workflow exit status.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#notificationchannel\">https://docs.exivity.com/architecture%20concepts/glossary/#notificationchannel</a></p>\n<h2 id=\"the-notificationchannel-object\">The NotificationChannel Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required unless <code>type=database</code></td>\n</tr>\n<tr>\n<td>type</td>\n<td><em>enum</em>( <code>database</code>, <code>mail</code>, <code>slack</code>, <code>nexmo</code>, <code>webhook</code>)</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>info</td>\n<td><em>object</em></td>\n<td>📝 editable</td>\n<td>Required unless <code>type=database</code>. <strong>Info Object</strong> (see below)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Info Object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>recipient</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required. Email format if <code>type=email</code>. URL format if <code>type=webhook</code>.</td>\n</tr>\n<tr>\n<td>cc</td>\n<td><em>string</em>? or <em>array?</em></td>\n<td>📝 editable</td>\n<td>Can be used if <code>type=email</code>. Email format</td>\n</tr>\n<tr>\n<td>bcc</td>\n<td><em>string?</em> or <em>array?</em></td>\n<td>📝 editable</td>\n<td>Can be used if <code>type=email</code>. Email format</td>\n</tr>\n<tr>\n<td>headers</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>Can be used if <code>type=webhook</code>.</td>\n</tr>\n<tr>\n<td>tls_verification</td>\n<td><em>boolean</em></td>\n<td>📝 editable</td>\n<td>Can be used if <code>type=webhook</code>.</td>\n</tr>\n<tr>\n<td>include_attachments</td>\n<td><em>boolean</em></td>\n<td>📝 editable</td>\n<td>Can be used if <code>type=webhook</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>hasOne</td>\n<td>user</td>\n<td>✔️</td>\n</tr>\n<tr>\n<td>hasMany</td>\n<td>notificationsubscriptions</td>\n<td>❌</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"3cf6d562-ac72-44d1-89cf-6258820941ab","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"3926a2c1-7159-4d3a-a8d3-f70b9de6276e","type":"text/javascript","exec":[""]}}],"_postman_id":"e5c97e74-7d78-489d-a527-4296a7794791"},{"name":"/notificationsubscriptions","item":[{"name":"Get all notifications subscriptions","event":[{"listen":"test","script":{"id":"84f406f5-5506-4ad6-98b7-3302723b96d6","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});","","if (response.data.length) {","    pm.environment.set(\"notification_subscritpion_id\", response.data[0].id);","    console.log('SET notification_subscritpion_id: ' + pm.environment.get(\"notification_subscritpion_id\"));","}",""],"type":"text/javascript"}}],"id":"8895056e-9004-4303-8c20-f01c926327c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"url":"{{base_url}}/v1/notificationsubscriptions","urlObject":{"path":["v1","notificationsubscriptions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8895056e-9004-4303-8c20-f01c926327c3"},{"name":"Create new notification subscription","event":[{"listen":"test","script":{"id":"10734244-7a2e-410d-90cc-f280b9288642","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('notificationsubscription');","    pm.expect(response.data.attributes).to.be.an('object');","});","","pm.environment.set(\"notification_subscritpion_id\", response.data.id);","console.log('SET notification_subscritpion_id: ' + pm.environment.get(\"notification_subscritpion_id\"));",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"8eac2dde-9d32-48e7-aeaf-b29eefc6be32","exec":["\r","if (!pm.environment.get(\"notification_channel_id\")) {\r","    console.log('No channel ID set - create a new channel');\r","\r","    // Create a new channel\r","    pm.sendRequest({\r","        url: pm.variables.get(\"base_url\") + '/v1/notificationchannels',\r","        method: 'POST',\r","        header: {\r","            'Accept': 'application/json',\r","            'Content-Type': 'application/json',\r","            'Authorization': 'Bearer ' + pm.variables.get(\"token\")\r","        },\r","        body: {\r","            mode: 'raw',\r","            raw: JSON.stringify({\r","            \t\"data\": {\r","                    \"type\":\"notificationchannel\",\r","                    \"attributes\": {\r","                        \"type\": \"mail\",\r","                        \"name\": \"E-mail for someone\",\r","                        \"info\": {\r","                        \t\"recipient\": \"someone@exivity.com\"\r","                        }\r","                    },\r","                    \"relationships\": {\r","                    \t\"user\": {\r","                    \t\t\"data\": {\r","                    \t\t\t\"type\": \"user\",\r","                    \t\t\t\"id\":  pm.variables.get(\"user_id\")\r","                    \t\t}\r","                    \t}\r","                    }\r","                }\r","            })\r","        }\r","    }, function(error, response) {\r","        if (error) {\r","            console.log(\"Error: \" + error);\r","        } else {\r","            pm.expect(response).to.have.property('code', 201);\r","            json = response.json();\r","            pm.environment.set(\"notification_channel_id\", json.data.id);\r","            console.log('SET notification_channel_id: ' + pm.environment.get(\"notification_channel_id\"));\r","        }\r","    });\r","}\r","\r",""],"type":"text/javascript"}}],"id":"9ee9759d-558f-4a13-b928-4adeb86148ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationsubscription\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"workflow_ended\",\n            \"info\": {\n            \t\"follow\": [\"*\"],\n            \t\"only_status\": [\"successful\", \"failed\"]\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t},\n        \t\"channels\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"channel\",\n        \t\t\t\"id\": \"{{notification_channel_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/notificationsubscriptions","urlObject":{"path":["v1","notificationsubscriptions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"21e1ab38-79ef-4ae4-b92b-110dedd735fe","name":"Create new report_published notificaiton subscription","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationsubscription\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"report_published\",\n            \"info\": {\n                \"report_id\": 2,\n                \"report_type\": \"separate\",\n                \"account_depth\": 1,\n                \"date_settings\": \"previous_month\",\n                \"format\": \"csv\"\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/notificationsubscriptions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 19 Jan 2021 09:49:37 GMT"},{"key":"Date","value":"Tue, 19 Jan 2021 09:49:37 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/1/notificationsubscription/5"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"report-uri https://sentry.io/api/120999/security/?sentry_key=7935c59cd7ad4e169ed97fac6d9c5f9d;base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-HBpMKpiNcU9ZErVkLyeeqX77rCcUYmhj';style-src 'self' 'nonce-HBpMKpiNcU9ZErVkLyeeqX77rCcUYmhj';font-src 'self' data:"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationsubscription\",\n        \"id\": \"5\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"report_published\",\n            \"enabled\": true,\n            \"info\": {\n                \"report_id\": 2,\n                \"report_type\": \"separate\",\n                \"account_depth\": 1,\n                \"date_settings\": \"previous_month\",\n                \"format\": \"csv\"\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/1/notificationsubscriptions/5\"\n        },\n        \"relationships\": {\n            \"user\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/1/notificationsubscription/5/relationships/user\",\n                    \"related\": \"http://localhost:8012/1/notificationsubscription/5/user\"\n                }\n            },\n            \"channels\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/1/notificationsubscription/5/relationships/channels\",\n                    \"related\": \"http://localhost:8012/1/notificationsubscription/5/channels\"\n                }\n            }\n        }\n    }\n}"},{"id":"2eff1162-a0f7-4727-a5b6-e792a0f2e25c","name":"Create workflow subscription with file attachement","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationsubscription\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"workflow.ended\",\n            \"info\": {\n            \t\"follow\": [\"*\"],\n            \t\"only_status\": [\"successful\", \"failed\"],\n                \"files\": {\n                    \"filename\": [\"extractor_[0-9]{,2}\\\\.[a-z0-9]{2,4}\", \"transformer_[0-9]{,2}\\\\.[a-z0-9]{2,4}\"],\n                    \"edited_since_workflow_started\": true,\n                    \"compress_attachments\": false\n                }\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t},\n        \t\"channels\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"channel\",\n        \t\t\t\"id\": \"{{notification_channel_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/notificationsubscriptions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Thu, 01 Oct 2020 13:56:50 GMT"},{"key":"Date","value":"Thu, 01 Oct 2020 13:56:50 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/1/notificationsubscription/4"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"report-uri https://sentry.io/api/120999/security/?sentry_key=7935c59cd7ad4e169ed97fac6d9c5f9d;base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-fbRtUtOlOS4kJT8Yo6ukBsG3NWXYLU6i';style-src 'self' 'nonce-fbRtUtOlOS4kJT8Yo6ukBsG3NWXYLU6i';font-src 'self' data:"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationsubscription\",\n        \"id\": \"4\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"workflow_ended\",\n            \"enabled\": true,\n            \"info\": {\n                \"follow\": [\n                    \"*\"\n                ],\n                \"only_status\": [\n                    \"successful\",\n                    \"failed\"\n                ],\n                \"files\": {\n                    \"filename\": [\n                        \"extractor_[0-9]{,2}\\\\.[a-z0-9]{2,4}\",\n                        \"transformer_[0-9]{,2}\\\\.[a-z0-9]{2,4}\"\n                    ],\n                    \"edited_since_workflow_started\": true,\n                    \"compress_attachments\": false\n                }\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/1/notificationsubscriptions/4\"\n        },\n        \"relationships\": {\n            \"user\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/1/notificationsubscription/4/relationships/user\",\n                    \"related\": \"http://localhost:8012/1/notificationsubscription/4/user\"\n                }\n            }\n        }\n    }\n}"},{"id":"9411375b-13dd-4907-8bd8-0f49491e487b","name":"Create new budget_evaluated notificaiton subscription","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationsubscription\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"budget_evaluated\",\n            \"info\": {\n                \"budget_id\": 1,\n            \t\"threshold_percentage\": 80,\n                \"only_once\": true,\n                \"account_ids\": [1,2,3]\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t},\n        \t\"channels\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"channel\",\n        \t\t\t\"id\": \"{{notification_channel_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/notificationsubscriptions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 18 Jan 2021 10:33:17 GMT"},{"key":"Date","value":"Mon, 18 Jan 2021 10:33:17 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/1/notificationsubscription/4"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"report-uri https://sentry.io/api/120999/security/?sentry_key=7935c59cd7ad4e169ed97fac6d9c5f9d;base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-cYInKv7lTnjmgmgCFHZ4bpNFN91Naz9a';style-src 'self' 'nonce-cYInKv7lTnjmgmgCFHZ4bpNFN91Naz9a';font-src 'self' data:"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationsubscription\",\n        \"id\": \"4\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"budget_evaluated\",\n            \"enabled\": true,\n            \"info\": {\n                \"budget_id\": 1,\n                \"threshold_percentage\": 80,\n                \"only_once\": true,\n                \"account_ids\": [\n                    1,\n                    2,\n                    3\n                ]\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/1/notificationsubscriptions/4\"\n        },\n        \"relationships\": {\n            \"user\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/1/notificationsubscription/4/relationships/user\",\n                    \"related\": \"http://localhost:8012/1/notificationsubscription/4/user\"\n                }\n            },\n            \"channels\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/1/notificationsubscription/4/relationships/channels\",\n                    \"related\": \"http://localhost:8012/1/notificationsubscription/4/channels\"\n                }\n            }\n        }\n    }\n}"},{"id":"a8b3f8c4-51b2-46f6-81cc-f4491fdcfb2b","name":"Create a new notification subscription with channel","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"data\": {\n        \"type\":\"notificationsubscription\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"workflow.ended\",\n            \"info\": {\n            \t\"follow\": [\"*\"],\n            \t\"only_status\": [\"successful\", \"failed\"]\n            }\n        },\n        \"relationships\": {\n        \t\"user\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"user\",\n        \t\t\t\"id\": \"{{user_id}}\"\n        \t\t}\n        \t},\n        \t\"channels\": {\n        \t\t\"data\": {\n        \t\t\t\"type\": \"channel\",\n        \t\t\t\"id\": \"{{notification_channel_id}}\"\n        \t\t}\n        \t}\n        }\n    }\n}"},"url":"{{base_url}}/v1/notificationsubscriptions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 18 Mar 2019 14:58:01 +0000"},{"key":"Date","value":"Mon, 18 Mar 2019 14:58:01 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.1.21"},{"key":"Location","value":"https://localhost:8012/v1/notificationsubscription/7"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Access-Control-Allow-Origin","value":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"notificationsubscription\",\n        \"id\": \"7\",\n        \"attributes\": {\n            \"name\": \"Important workflow has ended\",\n            \"type\": \"workflow.ended\",\n            \"info\": {\n                \"follow\": [\n                    \"*\"\n                ],\n                \"only_status\": [\n                    \"successful\",\n                    \"failed\"\n                ]\n            }\n        },\n        \"links\": {\n            \"self\": \"https://localhost:8012/v1/notificationsubscriptions/7\"\n        }\n    }\n}"}],"_postman_id":"9ee9759d-558f-4a13-b928-4adeb86148ca"},{"name":"Get a notification subscription by ID","event":[{"listen":"test","script":{"id":"01c26907-02bd-4095-95bc-7fe1af628eb4","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response has a valid JSON body\", function () {","     pm.response.to.be.withBody;","     pm.response.to.be.json;","});","","const response = pm.response.json();","console.log(response);","","// Check Json","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","});","","","pm.test(\"Response has valid attributes\", function() {","    pm.expect(response).to.have.property('data');","    pm.expect(response.data).to.have.property('id');","    pm.expect(response.data).to.have.property('type');","    pm.expect(response.data.type).to.be.eql('notificationsubscription');","    pm.expect(response.data).to.have.property('attributes');","    pm.expect(response.data).to.have.property('links');","    pm.expect(response.data).to.have.property('relationships');","});","    "],"type":"text/javascript"}}],"id":"ddb146ec-1857-4b6d-a220-8be5b31b5260","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/notificationsubscriptions/{{notification_subscritpion_id}}?include=channels","urlObject":{"path":["v1","notificationsubscriptions","{{notification_subscritpion_id}}"],"host":["{{base_url}}"],"query":[{"key":"include","value":"channels"}],"variable":[]}},"response":[],"_postman_id":"ddb146ec-1857-4b6d-a220-8be5b31b5260"},{"name":"Edit a notification subscription","event":[{"listen":"test","script":{"id":"9c254afb-3b8a-4389-a935-40ecd4336522","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });","","// const response = pm.response.json();","// console.log(response);","","// pm.test(\"Response contains data\", function () {","//     pm.expect(response.data).to.be.an('array');","// });",""],"type":"text/javascript"}}],"id":"6cc73bab-8d1f-466b-b611-e67c59b89e13","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"notificationsubscription\",\r\n\t\t\"id\": \"{{notification_subscritpion_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"Super important budget overruns\"\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/notificationsubscriptions/{{notification_subscritpion_id}}","urlObject":{"path":["v1","notificationsubscriptions","{{notification_subscritpion_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6cc73bab-8d1f-466b-b611-e67c59b89e13"},{"name":"Delete a notification subscription","event":[{"listen":"test","script":{"id":"b80ebb0a-52ba-49f3-bc01-265fa0edef69","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","// Delete the variable","console.log('UNSET notification_subscritpion_id');","pm.environment.unset(\"notification_subscritpion_id\");",""],"type":"text/javascript"}}],"id":"3d156ddf-71d1-4130-b095-bd1260b7301a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/notificationsubscriptions/{{notification_subscritpion_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","notificationsubscriptions","{{notification_subscritpion_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"3d7a9761-fc5d-4b8e-bd34-ea868957424d","name":"Delete a notification subscription","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/notificationsubscriptions/{{notification_subscritpion_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 12:36:03 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 12:36:03 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"Xc3610a09c6ac164f8ad10ee1094d8d57"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xc3610a09c6ac164f8ad10ee1094d8d57"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-8GouHED3q1ovg26nRa1gnR6cQI3bqqqA';style-src 'self' 'nonce-8GouHED3q1ovg26nRa1gnR6cQI3bqqqA';font-src 'self' data:"},{"key":"Request-Id","value":"944a136c-a96d-4837-b74a-d6853860a593"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"3d156ddf-71d1-4130-b095-bd1260b7301a"}],"id":"346db218-57a6-400c-85fb-34d847da24b0","description":"<p>Notifications are messages that are sent to a specific channel (e-mail, SMS, Slack, webhook) based on an event such as a Published Report, a Budget Evaluation, or a Workflow exit status.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#notification\">https://docs.exivity.com/architecture%20concepts/glossary/#notification</a></p>\n<h2 id=\"the-notificationsubscription-object\">The NotificationSubscription Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td><em>string</em></td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>type</td>\n<td><em>enum</em>(<code>workflow_ended</code>, <code>report_published</code>, <code>budget_evaluated</code>)</td>\n<td>📝 editable</td>\n<td>Required</td>\n</tr>\n<tr>\n<td>enabled</td>\n<td><em>boolean</em>?</td>\n<td>📝 editable</td>\n<td></td>\n</tr>\n<tr>\n<td>title</td>\n<td><em>string</em>?</td>\n<td>📝 editable</td>\n<td>It can contain some tags that are being replaced when the notification is sent. Each notification type has its own tags that can be used. For example, workflow.ended supports ${workflow_id}, ${workflow_name}, and ${workflow_status}.</td>\n</tr>\n<tr>\n<td>description</td>\n<td><em>string</em>?</td>\n<td>📝 editable</td>\n<td>Same behavior as title attribute</td>\n</tr>\n<tr>\n<td>info</td>\n<td><em>object</em></td>\n<td>📝 editable</td>\n<td>Required. <strong>Info Object</strong> (see below)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"info-object\"><strong>Info Object</strong></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>follow</td>\n<td><em>array</em>?</td>\n<td>📝 editable</td>\n<td>Pass \"<code>\\\\*</code>\" to follow all, or pass an array of IDs corresponding to the <code>type</code> attribute.</td>\n<td></td>\n</tr>\n<tr>\n<td>only_status</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td><code>successful</code>, <code>failed</code></td>\n<td></td>\n</tr>\n<tr>\n<td>files</td>\n<td><em>object</em>?</td>\n<td>📝 editable</td>\n<td>Use if <code>type=workflow_ended</code> <strong>Files Object</strong> (see below)</td>\n<td></td>\n</tr>\n<tr>\n<td>report_id</td>\n<td><em>number</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=report_published</code></td>\n<td></td>\n</tr>\n<tr>\n<td>account_depth</td>\n<td><em>number</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=report_published</code> 1-5</td>\n<td></td>\n</tr>\n<tr>\n<td>report_type</td>\n<td><em>enum</em>(<code>separated</code>, <code>consolidated</code>)</td>\n<td>📝 editable</td>\n<td>Required if <code>type=report_published</code></td>\n<td></td>\n</tr>\n<tr>\n<td>dimension</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>Use if <code>type=report_published</code>. Specify <code>services</code> and/or <code>instances</code>. <code>accounts</code> can also be included if <code>report_type=consolidated</code>.</td>\n<td></td>\n</tr>\n<tr>\n<td>group_by</td>\n<td><em>enum</em>( <code>instances_by_instance</code>, <code>instances_by_service</code>)</td>\n<td>📝 editable</td>\n<td>Use if <code>type=report_published</code>. Dimension must specify <code>instances</code>.</td>\n<td></td>\n</tr>\n<tr>\n<td>account_filter</td>\n<td><em>number</em>?</td>\n<td>📝 editable</td>\n<td>Use if <code>type=report_published</code>.</td>\n<td></td>\n</tr>\n<tr>\n<td>date_settings</td>\n<td><em>enum</em>(<code>previous_month</code>, <code>month_to_date</code>)</td>\n<td>📝 editable</td>\n<td>Required if <code>type=report_published</code></td>\n<td></td>\n</tr>\n<tr>\n<td>format</td>\n<td><em>enum</em>(<code>csv</code>, <code>pdf/summary</code>)</td>\n<td>📝 editable</td>\n<td>Required if <code>type=report_published</code></td>\n<td></td>\n</tr>\n<tr>\n<td>budget_id</td>\n<td><em>number</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=budget_evaluated</code></td>\n<td></td>\n</tr>\n<tr>\n<td>threshold_percentage</td>\n<td><em>number</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=budget_evaluated</code>. 0-100</td>\n<td></td>\n</tr>\n<tr>\n<td>only_once</td>\n<td><em>boolean</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=budget_evaluated</code></td>\n<td></td>\n</tr>\n<tr>\n<td>account_ids</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>Required if <code>type=budget_evaluated</code></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"files-object\">Files Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>mutability</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>compress_attachments</td>\n<td><em>boolean</em>?</td>\n<td>📝 editable</td>\n<td></td>\n</tr>\n<tr>\n<td>edited_since_workflow_started</td>\n<td><em>boolean</em>?</td>\n<td>📝 editable</td>\n<td></td>\n</tr>\n<tr>\n<td>filename</td>\n<td><em>array</em></td>\n<td>📝 editable</td>\n<td>List of filenames to include. Can use regular expressions</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"relationships\">Relationships</h2>\n<p>The following relationships can be included:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>relationship</strong></th>\n<th><strong>cardinality</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>user</td>\n<td>hasOne</td>\n<td>user</td>\n<td>✔️</td>\n</tr>\n<tr>\n<td>channel</td>\n<td>hasOne</td>\n<td>notificationchannel</td>\n<td>✔️</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"794a206e-780f-44a5-8c64-5adbe180fa16","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"93a39f1c-4a9f-48ee-bd77-d61084b5cf00","type":"text/javascript","exec":[""]}}],"_postman_id":"346db218-57a6-400c-85fb-34d847da24b0"},{"name":"/notifications","item":[{"name":"Get all database notification","event":[{"listen":"test","script":{"id":"09a0c7dc-3228-45a2-9f3c-6060f7777ebe","exec":["// pm.test(\"Status code is 200\", function () {","//     pm.response.to.have.status(200);","// });","","// const response = pm.response.json();","// console.log(response);","","// pm.test(\"Response contains data\", function () {","//     pm.expect(response.data).to.be.an('array');","// });","","// // Set the notification_id to the ID of the first notification","// pm.environment.set(\"notification_id\", response.data[0].id);"],"type":"text/javascript"}}],"id":"bb06302f-127a-4f71-9fa4-2e62522bb58c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/notifications","description":"<p>Get all database notification for auth user</p>\n","urlObject":{"path":["v1","notifications"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bb06302f-127a-4f71-9fa4-2e62522bb58c"}],"id":"9add9ff9-39f6-451a-971f-7f2f09d07e7e","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"27592118-418b-46e1-b78b-220db6819f01","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"03fca8c0-d8a9-49c5-b1ca-8231b72f55d6","type":"text/javascript","exec":[""]}}],"_postman_id":"9add9ff9-39f6-451a-971f-7f2f09d07e7e","description":""}],"id":"200943b9-5cca-443e-bdb4-27d9fff54501","auth":{"type":"noauth","isInherited":false},"_postman_id":"200943b9-5cca-443e-bdb4-27d9fff54501","description":""},{"name":"Administration","item":[{"name":"/users","item":[{"name":"/users/me","item":[{"name":"Retrieve the current user","event":[{"listen":"test","script":{"id":"78fd66fb-62f9-46c3-ae3a-380572d44554","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('user');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.test(\"Response contains keys\", function () {","        pm.expect(response.data.attributes).to.have.property(\"username\");","        pm.expect(response.data.attributes).to.have.property(\"email_address\");","        pm.expect(response.data.attributes).to.have.property(\"account_access_type\");","        pm.expect(response.data.attributes).to.have.property(\"source\");","        pm.expect(response.data.attributes).to.have.property(\"display_name\");","    });","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"user_id\", response.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"c5f5ac48-fe62-4cc2-aef1-bc37ec6d9113","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"d80b7694-8ce8-ab7c-24a2-8f38deba8eee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/users/me","urlObject":{"path":["v1","users","me"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d80b7694-8ce8-ab7c-24a2-8f38deba8eee"},{"name":"Update the current user","event":[{"listen":"test","script":{"id":"b7299b10-8228-4b15-8e1c-c440ba059ab9","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('user');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"user_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.test(\"Response contains keys\", function () {","        pm.expect(response.data.attributes).to.have.property(\"username\");","        pm.expect(response.data.attributes).to.have.property(\"email_address\");","        pm.expect(response.data.attributes).to.have.property(\"account_access_type\");","        pm.expect(response.data.attributes).to.have.property(\"source\");","        pm.expect(response.data.attributes).to.have.property(\"display_name\");","    });","  pm.expect(response.data.attributes.username).to.eql('admin');","  pm.expect(response.data.attributes.email_address).to.eql('tester@exivity.com');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"761c676d-26cc-9a13-e3cb-8d2571bf67f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"user\",\r\n    \"id\": \"{{user_id}}\",\r\n    \"attributes\": {\r\n      \"email_address\": \"tester@exivity.com\",\r\n      \"current_password\": \"exivity\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/users/me","urlObject":{"path":["v1","users","me"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"9da1e752-027c-46ce-b688-53399bcb509d","name":"Update the current user password","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"user\",\r\n    \"id\": \"{{user_id}}\",\r\n    \"attributes\": {\r\n      \"password\": \"new_password\"\r\n      \"current_password\": \"old_password\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/users/me"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"761c676d-26cc-9a13-e3cb-8d2571bf67f3"},{"name":"Generate a new key","event":[{"listen":"test","script":{"id":"b7299b10-8228-4b15-8e1c-c440ba059ab9","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.result).to.be.a('string');","    pm.expect(response.result).to.eql('rotated');","});"],"type":"text/javascript"}}],"id":"f9ec946a-4d5b-4cfe-bff5-cfd0e320afc1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/users/me/key","description":"<p>⚠️ Available since v3.0.0.</p>\n<p>This will invalidate all previously issued tokens.</p>\n","urlObject":{"path":["v1","users","me","key"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f9ec946a-4d5b-4cfe-bff5-cfd0e320afc1"},{"name":"Update the current users app state","event":[{"listen":"test","script":{"id":"09a39f7e-ecec-43c2-99a7-b948187a1edd","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct state\", function () {","    pm.expect(response.state).to.be.an('object');","    pm.expect(response.state.key).to.not.be.undefined;","\tpm.expect(response.state.key).to.eql('value');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"0b79d903-38a4-402f-9bad-87cbd4320a59","exec":["pm.environment.unset(\"token\");","","const api = eval(pm.globals.get('exivity'))();","","api.start()","    .then(api.requireToken)","    .then(api.ready)","    .catch(function(err) {","        console.log(err);","    });",""],"type":"text/javascript"}}],"id":"954f38ca-d6c5-4541-9573-4bd73293cc09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n\t\"state\": {\r\n\t\t\"key\": \"value\"\r\n\t}\r\n}"},"url":"{{base_url}}/v1/users/me/state?app=glass","urlObject":{"path":["v1","users","me","state"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The client to update the state for. One of <code>glass</code>, <code>lens</code>.</p>\n","type":"text/plain"},"key":"app","value":"glass"}],"variable":[]}},"response":[],"_postman_id":"954f38ca-d6c5-4541-9573-4bd73293cc09"},{"name":"Delete the current users app state","event":[{"listen":"test","script":{"id":"c6c40b6e-d813-4009-83e8-8e35a1e5dd42","type":"text/javascript","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});"]}}],"id":"88623d4f-fe3f-4b8c-99cc-1f3b2fd7cd2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/users/me/state?app=glass","urlObject":{"path":["v1","users","me","state"],"host":["{{base_url}}"],"query":[{"key":"app","value":"glass"}],"variable":[]}},"response":[],"_postman_id":"88623d4f-fe3f-4b8c-99cc-1f3b2fd7cd2e"}],"id":"e891290d-6258-419f-9b51-ad14ae870321","auth":{"type":"noauth","isInherited":false},"_postman_id":"e891290d-6258-419f-9b51-ad14ae870321","description":""},{"name":"Retrieve a list of users","event":[{"listen":"test","script":{"id":"ab564c7d-96b3-4ef0-80f0-b415013242ed","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"4da123dc-8305-ecc6-6534-415bbad23fdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/users?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","users"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>usergroup</code>, <code>accounts</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"4da123dc-8305-ecc6-6534-415bbad23fdc"},{"name":"Add a new user","event":[{"listen":"test","script":{"id":"4d4d1b04-d640-486e-b489-609853ae7217","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('user');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.test(\"Response contains keys\", function () {","        pm.expect(response.data.attributes).to.have.property(\"username\");","        pm.expect(response.data.attributes).to.have.property(\"email_address\");","        pm.expect(response.data.attributes).to.have.property(\"account_access_type\");","        pm.expect(response.data.attributes).to.have.property(\"source\");","        pm.expect(response.data.attributes).to.have.property(\"display_name\");","    });","    pm.expect(response.data.attributes.username).to.include('User');","    pm.expect(response.data.attributes.email_address).to.include('someone');","    pm.expect(response.data.attributes.email_address).to.include('@example.com');","    pm.expect(response.data.attributes.account_access_type).to.eql('custom');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"new_user_id\", response.data.id);","console.log('SET new_user_id: ' + pm.environment.get(\"new_user_id\"));",""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"964341b9-fd31-4ea7-a3b8-f78f3cdb5d20","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireUsergroup)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"5dbf53a0-24cc-f213-6eb0-96137e5f3fef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"user\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"username\": \"User - 61\",\r\n\t\t\t\"email_address\": \"someone_904@example.com\",\r\n\t\t\t\"password\": \"super-complex-password\",\r\n\t\t\t\"account_access_type\": \"custom\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n\t\t\t\"usergroup\": {\r\n\t\t\t\t\"data\": {\r\n\t\t\t\t\t\"type\": \"usergroup\",\r\n\t\t\t\t\t\"id\": \"{{usergroup_id}}\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/users","urlObject":{"path":["v1","users"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5dbf53a0-24cc-f213-6eb0-96137e5f3fef"},{"name":"Retrieve a user","event":[{"listen":"test","script":{"id":"a5de2d85-33a6-4a79-92c8-7ebd2a490fa7","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('user');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"new_user_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.test(\"Response contains keys\", function () {","        pm.expect(response.data.attributes).to.have.property(\"username\");","        pm.expect(response.data.attributes).to.have.property(\"email_address\");","        pm.expect(response.data.attributes).to.have.property(\"account_access_type\");","        pm.expect(response.data.attributes).to.have.property(\"source\");","        pm.expect(response.data.attributes).to.have.property(\"display_name\");","    });","    pm.expect(response.data.attributes.username).to.include('User');","    pm.expect(response.data.attributes.email_address).to.include('someone');","    pm.expect(response.data.attributes.email_address).to.include('@example.com');","    pm.expect(response.data.attributes.account_access_type).to.eql('custom');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"479a55e3-3716-7311-d743-fe041ecff160","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/users/{{new_user_id}}?include=","urlObject":{"path":["v1","users","{{new_user_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>usergroup</code>, <code>accounts</code>, <code>channels</code>, <code>notificationsubscriptions</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"479a55e3-3716-7311-d743-fe041ecff160"},{"name":"Generate a new key","event":[{"listen":"test","script":{"id":"2012e4e8-aec3-467a-b60d-faeb3c8cb4cd","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.result).to.be.a('string');","    pm.expect(response.result).to.eql('rotated');","});"],"type":"text/javascript"}}],"id":"96fd2e9b-b959-4e6c-a8a5-06c40483598c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/users/{{new_user_id}}/key","description":"<p>⚠️ Available since v3.0.0.</p>\n<p>This will invalidate all previously issued tokens.</p>\n","urlObject":{"path":["v1","users","{{new_user_id}}","key"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"96fd2e9b-b959-4e6c-a8a5-06c40483598c"},{"name":"Update a user","event":[{"listen":"test","script":{"id":"2012e4e8-aec3-467a-b60d-faeb3c8cb4cd","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('user');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"new_user_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.test(\"Response contains keys\", function () {","        pm.expect(response.data.attributes).to.have.property(\"username\");","        pm.expect(response.data.attributes).to.have.property(\"email_address\");","        pm.expect(response.data.attributes).to.have.property(\"account_access_type\");","        pm.expect(response.data.attributes).to.have.property(\"source\");","        pm.expect(response.data.attributes).to.have.property(\"display_name\");","    });","    pm.expect(response.data.attributes.username).to.include('modified_user');","    pm.expect(response.data.attributes.email_address).to.include('someone+modified');","    pm.expect(response.data.attributes.email_address).to.include('@exivity.com');","    pm.expect(response.data.attributes.account_access_type).to.eql('all');","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"4e87d63e-9383-c548-b212-aeea5aa1270d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"user\",\r\n    \"id\": \"{{new_user_id}}\",\r\n    \"attributes\": {\r\n      \"username\": \"modified_user - 926\",\r\n      \"email_address\": \"someone+modified_757@exivity.com\",\r\n      \"account_access_type\": \"all\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/users/{{new_user_id}}","urlObject":{"path":["v1","users","{{new_user_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"8a51fcb1-975b-4c5b-bd7a-a444a80bc6dc","name":"Update a user's source to LDAP","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"user\",\r\n    \"id\": \"{{new_user_id}}\",\r\n    \"attributes\": {\r\n      \"source\": \"ldap\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/users/{{new_user_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Tue, 09 Nov 2021 16:20:01 GMT"},{"key":"Date","value":"Tue, 09 Nov 2021 16:20:01 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"report-uri https://sentry.io/api/120999/security/?sentry_key=7935c59cd7ad4e169ed97fac6d9c5f9d;base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-deA0a21he0JbtFJxaHyEB83rQFyLn7Qt';style-src 'self' 'nonce-deA0a21he0JbtFJxaHyEB83rQFyLn7Qt';font-src 'self' data:"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"user\",\n        \"id\": \"4deaa843-6c62-4534-97b6-27bbf29d7ad8\",\n        \"attributes\": {\n            \"username\": \"modified_user - 700\",\n            \"email_address\": \"someone+modified_504@exivity.com\",\n            \"account_access_type\": \"all\",\n            \"source\": \"ldap\",\n            \"display_name\": \"modified_user - 700\"\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8\"\n        },\n        \"relationships\": {\n            \"usergroup\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/relationships/usergroup\",\n                    \"related\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/usergroup\"\n                }\n            },\n            \"accounts\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/relationships/accounts\",\n                    \"related\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/accounts\"\n                }\n            },\n            \"channels\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/relationships/channels\",\n                    \"related\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/channels\"\n                }\n            },\n            \"notificationchannels\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/relationships/notificationchannels\",\n                    \"related\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/notificationchannels\"\n                }\n            },\n            \"notificationsubscriptions\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/relationships/notificationsubscriptions\",\n                    \"related\": \"http://localhost:8012/v1/users/4deaa843-6c62-4534-97b6-27bbf29d7ad8/notificationsubscriptions\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"4e87d63e-9383-c548-b212-aeea5aa1270d"},{"name":"Delete a user","event":[{"listen":"test","script":{"id":"76192ac4-5dad-4027-8f46-36932f8cf5a3","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET new_user_id');","pm.environment.unset(\"new_user_id\");"],"type":"text/javascript"}}],"id":"918cd8ca-a9d9-51ee-b51f-9241939ed239","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/users/{{new_user_id}}","urlObject":{"path":["v1","users","{{new_user_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"918cd8ca-a9d9-51ee-b51f-9241939ed239"}],"id":"8869248e-edd9-0b19-023d-cc27e4b5eba6","description":"<p>Everyone connecting to our API needs a valid user account. Users can change some of their details themselves.</p>\n<p>Users with the \"manage_users\" permission can view, create, edit and delete users on the system.</p>\n<h4 id=\"the-user-object\">The User Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td><em>guid</em></td>\n<td>Unique identifier</td>\n</tr>\n<tr>\n<td>account_access_type</td>\n<td><em>in: all/custom</em></td>\n<td></td>\n</tr>\n<tr>\n<td>current_password</td>\n<td><em>string</em></td>\n<td>Only used when update current user</td>\n</tr>\n<tr>\n<td>display_name</td>\n<td><em>string</em></td>\n<td></td>\n</tr>\n<tr>\n<td>email_address</td>\n<td><em>string</em></td>\n<td>Unique email address, max 255 characters</td>\n</tr>\n<tr>\n<td>password</td>\n<td><em>string</em></td>\n<td>Min 8 characters</td>\n</tr>\n<tr>\n<td>source</td>\n<td><em>in: local/ldap/saml</em></td>\n<td></td>\n</tr>\n<tr>\n<td>username</td>\n<td><em>string, unique username, between 2-255 characters</em></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"106929c9-ced0-4161-8c22-a82af897a7ce","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e88d65b3-4ee5-455c-97e2-56b1ce35f644","type":"text/javascript","exec":[""]}}],"_postman_id":"8869248e-edd9-0b19-023d-cc27e4b5eba6"},{"name":"/usergroups","item":[{"name":"Retrieve a list of usergroups","event":[{"listen":"test","script":{"id":"67b49a6a-8210-4e29-9b85-481402f67edf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"49649913-3039-4c25-84c7-0610f779950f","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"9cbb9dc2-2de6-12a6-0a4f-dc991f9c35d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/usergroups?filter[attribute]=","urlObject":{"path":["v1","usergroups"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":""}],"variable":[]}},"response":[],"_postman_id":"9cbb9dc2-2de6-12a6-0a4f-dc991f9c35d8"},{"name":"Add a new usergroup","event":[{"listen":"test","script":{"id":"01f37b5a-a98f-4f9b-b8f5-e3286935b7ad","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('usergroup');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","    \"name\",","        \"permissions\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('testers');","  pm.expect(response.data.attributes.permissions).to.eql(['manage_users']);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"usergroup_id\", response.data.id);"],"type":"text/javascript"}}],"id":"0be8c767-4ef8-fe9c-52de-d03c5bedca68","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"usergroup\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"testers\",\r\n\t\t\t\"permissions\": [\"manage_users\"]\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/usergroups","urlObject":{"path":["v1","usergroups"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1be8877e-41d8-4e97-829e-f881435aa369","name":"Add a new usergroup","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"usergroup\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"testers\",\r\n\t\t\t\"permissions\": [\"manage_users\"]\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/usergroups"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:40:11 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:40:11 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Usergroup/Usergroups"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X323af56c4fb301e0486c88f7c4cf7d0f"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-gv1trTAypt554N11EfFQfK9dcSjC6qST';style-src 'self' 'nonce-gv1trTAypt554N11EfFQfK9dcSjC6qST';font-src 'self' data:"},{"key":"Request-Id","value":"a0b70752-55d1-419c-84f6-9172f8cdb7b8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"usergroup\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"name\": \"testers\",\n            \"permissions\": [\n                \"manage_users\"\n            ]\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/usergroups/2\"\n        },\n        \"relationships\": {\n            \"users\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/usergroups/2/relationships/users\",\n                    \"related\": \"http://localhost:8012/v1/usergroups/2/users\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"0be8c767-4ef8-fe9c-52de-d03c5bedca68"},{"name":"Retrieve a usergroup","event":[{"listen":"test","script":{"id":"e027a60e-90af-4fbe-b93d-b862f0e57e10","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('usergroup');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"usergroup_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","    \"name\",","        \"permissions\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('testers');","  pm.expect(response.data.attributes.permissions).to.eql(['manage_users']);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"9d065b1d-c626-2825-9367-74cfdad33913","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}","urlObject":{"path":["v1","usergroups","{{usergroup_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"5d5c80b2-8314-49f7-ba70-f762024cc552","name":"Retrieve a usergroup","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:40:32 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:40:32 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X8e2cf05b5cd5d28f0319aed6d61ea6e4"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-qcMmTIePg06esIKTgCSO8vmZl4fgiUjw';style-src 'self' 'nonce-qcMmTIePg06esIKTgCSO8vmZl4fgiUjw';font-src 'self' data:"},{"key":"Request-Id","value":"2909f9bd-0202-4722-acaa-3776609fef85"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"usergroup\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"name\": \"testers\",\n            \"permissions\": [\n                \"manage_users\"\n            ]\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/usergroups/2\"\n        },\n        \"relationships\": {\n            \"users\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/usergroups/2/relationships/users\",\n                    \"related\": \"http://localhost:8012/v1/usergroups/2/users\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"9d065b1d-c626-2825-9367-74cfdad33913"},{"name":"Update a usergroup","event":[{"listen":"test","script":{"id":"08b3b90c-34f2-40b1-8b33-8512aeb58810","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('usergroup');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"usergroup_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","    \"name\",","        \"permissions\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('modified_testers');","  pm.expect(response.data.attributes.permissions).to.eql(['manage_users','manage_settings']);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"f5b8914b-34d4-daa5-261d-ff8e218be950","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n    \"data\": {\r\n        \"type\": \"usergroup\",\r\n        \"id\": \"{{usergroup_id}}\",\r\n        \"attributes\": {\r\n\t\t\t\"name\": \"modified_testers\",\r\n\t\t\t\"permissions\": [\"manage_users\", \"manage_settings\"]\r\n\t\t}\r\n    }\r\n}"},"url":"{{base_url}}/v1/usergroups/:usergroup_id","urlObject":{"path":["v1","usergroups",":usergroup_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"{{usergroup_id}}","key":"usergroup_id"}]}},"response":[{"id":"de083b3f-3dcb-448b-989a-fe23c0353363","name":"Add user to usergroup","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"usergroup\",\r\n    \"id\": \"{{usergroup_id}}\",\r\n    \"relationships\": {\r\n      \"users\": {\"data\": [\r\n        {\"type\": \"user\", \"id\": \"54c61cde-8488-461a-96d1-e75db3f6df7d\"}    \r\n      ]}\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Mon, 09 May 2022 10:28:21 GMT"},{"key":"Date","value":"Mon, 09 May 2022 10:28:21 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xeb8203777b90fdf0e1e9f834b8aeb98e"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-zu6uqk7kFL4mWW7Fyx99cPvEG6xL5x3B';style-src 'self' 'nonce-zu6uqk7kFL4mWW7Fyx99cPvEG6xL5x3B';font-src 'self' data:"},{"key":"Request-Id","value":"cfc5135e-02f5-41d7-adc9-b24e179a9399"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"usergroup\",\n        \"id\": \"5\",\n        \"attributes\": {\n            \"name\": \"testers\",\n            \"permissions\": [\n                \"manage_users\"\n            ]\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/usergroups/5\"\n        },\n        \"relationships\": {\n            \"users\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/usergroups/5/relationships/users\",\n                    \"related\": \"http://localhost:8012/v1/usergroups/5/users\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"f5b8914b-34d4-daa5-261d-ff8e218be950"},{"name":"Delete a usergroup","event":[{"listen":"test","script":{"id":"170281b6-f19c-4dc0-be12-0494ca748b07","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET usergroup_id');","pm.environment.unset(\"usergroup_id\");"],"type":"text/javascript"}}],"id":"086ad41d-6c5c-97f9-d6b0-6e36cb971aa8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}","description":"<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","usergroups","{{usergroup_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"22744c3a-e37d-4beb-80c1-e524cfe17d12","name":"Delete a usergroup","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:40:42 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:40:42 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Clockwork-Id","value":"X5757b8b223cea381c78dbfac006c549b"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X5757b8b223cea381c78dbfac006c549b"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-dUKQckVyuTqNsgURsVw38PE9CJ7TzLt9';style-src 'self' 'nonce-dUKQckVyuTqNsgURsVw38PE9CJ7TzLt9';font-src 'self' data:"},{"key":"Request-Id","value":"ca72d4c1-80a9-4097-97ce-dfe5f401bdec"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"086ad41d-6c5c-97f9-d6b0-6e36cb971aa8"}],"id":"3f15ca20-679c-db83-23d8-65565fa41078","description":"<p>It is possible to create custom usergroups, with different permissions. Users can be assigned to different usergroups.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/administration/user-management/groups\">https://docs.exivity.com/administration/user-management/groups</a></p>\n<h4 id=\"the-usergroup-object\">The Usergroup Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>attribute</strong></th>\n<th><strong>type</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>required, string, max:255, unique</td>\n</tr>\n<tr>\n<td>permissions</td>\n<td>array</td>\n</tr>\n<tr>\n<td>saml_provisioning</td>\n<td>nullable, only with SAML usergroups</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"permissions\">Permissions</h4>\n<p>Please see the Exivity documentation for more information on specific permissions: <a href=\"https://docs.exivity.com/administration/user-management/groups#user-permissions\">https://docs.exivity.com/administration/user-management/groups#user-permissions</a></p>\n<p>The following is a list of currently supported permission on our system:</p>\n<ul>\n<li>view_audit</li>\n<li>view_billing</li>\n<li>view_budgets</li>\n<li>view_cogs</li>\n<li>view_logs</li>\n<li>manage_accounts</li>\n<li>manage_catalogue</li>\n<li>manage_data_sources</li>\n<li>manage_datasets</li>\n<li>manage_files</li>\n<li>manage_metadata_definitions</li>\n<li>manage_reports</li>\n<li>manage_settings</li>\n<li>manage_users</li>\n<li>manage_workflows</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"53486121-304d-4d9f-9c02-fd36ed193b01","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f556d843-8a52-4244-acba-d3764d8bb00c","type":"text/javascript","exec":[""]}}],"_postman_id":"3f15ca20-679c-db83-23d8-65565fa41078"},{"name":"/configuration","item":[{"name":"Retrieve configuration","event":[{"listen":"test","script":{"id":"0500390f-a1a9-475f-8bf7-48d7ad8252cf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response.configuration).to.be.an('object');","});","pm.test(\"Response contains USE_CACHE\", function () { pm.expect(response.configuration.USE_CACHE).to.be.a('boolean'); });","pm.test(\"Response contains CURRENCY\", function () { pm.expect(response.configuration.CURRENCY).to.be.a('string'); });","//pm.test(\"Response contains DECIMAL_SYMBOL\", function () { pm.expect(response.configuration.DECIMAL_SYMBOL).to.be.a('string'); });","//pm.test(\"Response contains THOUSANDS_SYMBOL\", function () { pm.expect(response.configuration.THOUSANDS_SYMBOL).to.be.a('string'); });","pm.test(\"Response contains RATE_PRECISION\", function () { pm.expect(response.configuration.RATE_PRECISION).to.be.a('number'); });","pm.test(\"Response contains SUMMARY_PRECISION\", function () { pm.expect(response.configuration.SUMMARY_PRECISION).to.be.a('number'); });","pm.test(\"Response contains QUANTITY_PRECISION\", function () { pm.expect(response.configuration.QUANTITY_PRECISION).to.be.a('number'); });","pm.test(\"Response contains DATE_FORMAT\", function () { pm.expect(response.configuration.DATE_FORMAT).to.be.a('string'); });","//pm.test(\"Response contains SUMMARY_ADDRESS\", function () { pm.expect(response.configuration.SUMMARY_ADDRESS).to.be.a('string'); });","//pm.test(\"Response contains SUMMARY_IMAGE\", function () { pm.expect(response.configuration.SUMMARY_IMAGE).to.be.a('string'); });","pm.test(\"Response contains SUMMARY_TITLE\", function () { pm.expect(response.configuration.SUMMARY_TITLE).to.be.a('string'); });","//pm.test(\"Response contains SUMMARY_EXTRA\", function () { pm.expect(response.configuration.SUMMARY_EXTRA).to.be.a('string'); });","pm.test(\"Response contains REPORT_START_MONTH\", function () { pm.expect(response.configuration.REPORT_START_MONTH).to.be.a('number'); });","pm.test(\"Response contains APP_DEBUG\", function () { pm.expect(response.configuration.APP_DEBUG).to.be.a('boolean'); });","pm.test(\"Response contains APP_NAME\", function () { pm.expect(response.configuration.APP_NAME).to.be.a('string'); });","//pm.test(\"Response contains APP_LOGO\", function () { pm.expect(response.configuration.APP_LOGO).to.be.a('string'); });","//pm.test(\"Response contains APP_ICON\", function () { pm.expect(response.configuration.APP_ICON).to.be.a('string'); });","//pm.test(\"Response contains APP_FAVICON\", function () { pm.expect(response.configuration.APP_FAVICON).to.be.a('string'); });","//pm.test(\"Response contains APP_COLOUR\", function () { pm.expect(response.configuration.APP_COLOUR).to.be.a('string'); });","pm.test(\"Response contains APP_DOCUMENTATION\", function () { pm.expect(response.configuration.APP_DOCUMENTATION).to.be.a('boolean'); });","pm.test(\"Response contains USE_LOCAL_STORAGE\", function () { pm.expect(response.configuration.USE_LOCAL_STORAGE).to.be.a('boolean'); });","pm.test(\"Response contains ANALYTICS\", function () { pm.expect(response.configuration.ANALYTICS).to.be.a('boolean'); });","pm.test(\"Response contains ERROR_TRACKING\", function () { pm.expect(response.configuration.ERROR_TRACKING).to.be.a('boolean'); });"],"type":"text/javascript"}}],"id":"da2703d8-8ea8-11d3-360b-97633b2c436b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/configuration","urlObject":{"path":["v1","configuration"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"cb44a734-e343-4302-abf9-6f5492ab5299","name":"Retrieve configuration","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/configuration"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:41:26 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:41:26 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X0fd9a6576a344ebe93010e702f2753d8"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X0fd9a6576a344ebe93010e702f2753d8"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-mOWXnJqezzabw1YvkAcFEnab2BtzTExU';style-src 'self' 'nonce-mOWXnJqezzabw1YvkAcFEnab2BtzTExU';font-src 'self' data:"},{"key":"Request-Id","value":"dbe37844-5a21-4a6c-bd62-ee20a8c78f85"}],"cookie":[],"responseTime":null,"body":"{\n    \"configuration\": {\n        \"APP_DEBUG\": false,\n        \"APP_NAME\": \"Exivity\",\n        \"APP_LOGO\": null,\n        \"APP_ICON\": null,\n        \"APP_FAVICON\": null,\n        \"APP_COLOUR\": \"#00a8d8\",\n        \"APP_CSS\": \"\",\n        \"APP_DOCUMENTATION\": true,\n        \"APP_LANGUAGE\": \"en\",\n        \"PUBLIC_ROOT\": \"https://localhost:8001\",\n        \"SSO_LOGIN_METHOD\": \"local_user_or_ldap\",\n        \"USE_LOCAL_STORAGE\": false,\n        \"ANALYTICS\": true,\n        \"ANALYTICS_EXTRA_PROPERTY\": null,\n        \"ERROR_TRACKING\": true,\n        \"BETA_FEATURES\": false,\n        \"TOKEN_TTL\": \"4 hours\",\n        \"ALLOW_PERSISTENT_TOKENS\": false,\n        \"USE_CACHE\": true,\n        \"CURRENCY\": \"EUR\",\n        \"CURRENCY_FORMAT\": \"€\",\n        \"DECIMAL_SEPARATOR\": \".\",\n        \"CSV_DELIMITER\": \",\",\n        \"CSV_DECIMAL_SEPARATOR\": \".\",\n        \"THOUSAND_SEPARATOR\": \",\",\n        \"RATE_PRECISION\": 8,\n        \"REPORT_PRECISION\": 2,\n        \"SUMMARY_PRECISION\": 2,\n        \"QUANTITY_PRECISION\": 6,\n        \"PERCENTAGE_PRECISION\": 2,\n        \"DATE_FORMAT\": \"dd-MM-yyyy\",\n        \"SUMMARY_ADDRESS\": null,\n        \"SUMMARY_IMAGE\": null,\n        \"SUMMARY_TITLE\": \"Summary\",\n        \"SUMMARY_EXTRA\": null,\n        \"SUMMARY_MIN_COMMIT\": \"Uplift for minimum commitment of {quantity} {label}\",\n        \"GRAPH_MAX_SERIES\": 15,\n        \"REPORT_START_MONTH\": 1,\n        \"DISCLAIMER_ENABLED\": false,\n        \"DISCLAIMER_TITLE\": \"Disclaimer\",\n        \"DISCLAIMER_TEXT\": \"\",\n        \"DISCLAIMER_AGREE_BUTTON_TEXT\": \"I agree\",\n        \"PASSWORD_POLICY\": \"length_dictionary\",\n        \"ADDITIONAL_CORS_ORIGINS\": null,\n        \"MAX_LOGIN_ATTEMPTS\": 5,\n        \"LOGIN_ATTEMPTS_INTERVAL\": null,\n        \"BLOCK_LOGIN_DURATION\": \"15 minutes\"\n    }\n}"}],"_postman_id":"da2703d8-8ea8-11d3-360b-97633b2c436b"},{"name":"Retrieve configuration (unauthenticated)","event":[{"listen":"test","script":{"id":"51d8e577-7a4a-4146-a1a6-a479f9f177e4","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response.configuration).to.be.an('object');","});","","pm.test(\"Response contains APP_DEBUG\", function () { pm.expect(response.configuration.APP_DEBUG).to.be.a('boolean'); });","pm.test(\"Response contains APP_NAME\", function () { pm.expect(response.configuration.APP_NAME).to.be.a('string'); });","//pm.test(\"Response contains APP_LOGO\", function () { pm.expect(response.configuration.APP_LOGO).to.be.a('string'); });","//pm.test(\"Response contains APP_ICON\", function () { pm.expect(response.configuration.APP_ICON).to.be.a('string'); });","//pm.test(\"Response contains APP_COLOUR\", function () { pm.expect(response.configuration.APP_COLOUR).to.be.a('string'); });","//pm.test(\"Response contains APP_FAVICON\", function () { pm.expect(response.configuration.APP_FAVICON).to.be.a('string'); });","pm.test(\"Response contains APP_DOCUMENTATION\", function () { pm.expect(response.configuration.APP_DOCUMENTATION).to.be.a('boolean'); });","pm.test(\"Response contains USE_LOCAL_STORAGE\", function () { pm.expect(response.configuration.USE_LOCAL_STORAGE).to.be.a('boolean'); });","pm.test(\"Response contains ANALYTICS\", function () { pm.expect(response.configuration.ANALYTICS).to.be.a('boolean'); });","pm.test(\"Response contains ERROR_TRACKING\", function () { pm.expect(response.configuration.ERROR_TRACKING).to.be.a('boolean'); });","","pm.test(\"Response doesn't contain non-public keys\", function () {","    pm.expect(response.configuration.USE_CACHE).to.be.undefined;","    pm.expect(response.configuration.CURRENCY).to.be.undefined;","    pm.expect(response.configuration.DECIMAL_SYMBOL).to.be.undefined;","    pm.expect(response.configuration.THOUSANDS_SYMBOL).to.be.undefined;","    pm.expect(response.configuration.RATE_PRECISION).to.be.undefined;","    pm.expect(response.configuration.REPORT_PRECISION).to.be.undefined;","    pm.expect(response.configuration.INVOICE_PRECISION).to.be.undefined;","    pm.expect(response.configuration.QUANTITY_PRECISION).to.be.undefined;","    pm.expect(response.configuration.DATE_FORMAT).to.be.undefined;","    pm.expect(response.configuration.INVOICE_ADDRESS).to.be.undefined;","    pm.expect(response.configuration.INVOICE_IMAGE).to.be.undefined;","    pm.expect(response.configuration.INVOICE_TITLE).to.be.undefined;","    pm.expect(response.configuration.INVOICE_EXTRA).to.be.undefined;","    pm.expect(response.configuration.GRAPH_MAX_SERIES).to.be.undefined;","    pm.expect(response.configuration.REPORT_START_MONTH).to.be.undefined;","});"],"type":"text/javascript"}}],"id":"6b4b7407-536a-6419-8c25-cdd4d98a91d6","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/configuration","urlObject":{"path":["v1","configuration"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6b4b7407-536a-6419-8c25-cdd4d98a91d6"},{"name":"Update configuration","event":[{"listen":"test","script":{"id":"cf7a605f-9e7f-409b-bfde-40ddb19099b2","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response.configuration).to.be.an('object');","});","","pm.test(\"Response contains new keys\", function () {","    pm.expect(response.configuration.SUMMARY_EXTRA).to.be.eql(\"Updated from Postman Test\");","    ","});"],"type":"text/javascript","packages":{}}}],"id":"33e9626f-a3d1-d6b3-0dd8-816e94479364","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{  \r\n   \"configuration\":{  \r\n      \"SUMMARY_EXTRA\": \"Updated from Postman Test\"\r\n   }\r\n}"},"url":"{{base_url}}/v1/configuration","urlObject":{"path":["v1","configuration"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"12f1c11e-c5ed-4309-8cc0-c17acacfac72","name":"Update configuration","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{  \r\n   \"configuration\":{  \r\n      \"SUMMARY_EXTRA\": \"Updated from Postman Test\"\r\n   }\r\n}"},"url":"{{base_url}}/v1/configuration"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:42:02 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:42:02 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"Xfb8bd0c7529c9f7d1524cb7938d08cf0"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xfb8bd0c7529c9f7d1524cb7938d08cf0"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-ZxZ3arF8c5wF7DLRU0xZYQjjTvDSFgN2';style-src 'self' 'nonce-ZxZ3arF8c5wF7DLRU0xZYQjjTvDSFgN2';font-src 'self' data:"},{"key":"Request-Id","value":"6bc23c80-b769-43b7-b889-97a88b1d6c53"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 200,\n    \"message\": \"Configuration saved.\",\n    \"configuration\": {\n        \"APP_DEBUG\": false,\n        \"APP_NAME\": \"Exivity\",\n        \"APP_LOGO\": null,\n        \"APP_ICON\": null,\n        \"APP_FAVICON\": null,\n        \"APP_COLOUR\": \"#00a8d8\",\n        \"APP_CSS\": \"\",\n        \"APP_DOCUMENTATION\": true,\n        \"APP_LANGUAGE\": \"en\",\n        \"PUBLIC_ROOT\": \"https://localhost:8001\",\n        \"SSO_LOGIN_METHOD\": \"local_user_or_ldap\",\n        \"USE_LOCAL_STORAGE\": false,\n        \"ANALYTICS\": true,\n        \"ANALYTICS_EXTRA_PROPERTY\": null,\n        \"ERROR_TRACKING\": true,\n        \"BETA_FEATURES\": false,\n        \"TOKEN_TTL\": \"4 hours\",\n        \"ALLOW_PERSISTENT_TOKENS\": false,\n        \"USE_CACHE\": true,\n        \"CURRENCY\": \"EUR\",\n        \"CURRENCY_FORMAT\": \"€\",\n        \"DECIMAL_SEPARATOR\": \".\",\n        \"CSV_DELIMITER\": \",\",\n        \"CSV_DECIMAL_SEPARATOR\": \".\",\n        \"THOUSAND_SEPARATOR\": \",\",\n        \"RATE_PRECISION\": 8,\n        \"REPORT_PRECISION\": 2,\n        \"SUMMARY_PRECISION\": 2,\n        \"QUANTITY_PRECISION\": 6,\n        \"PERCENTAGE_PRECISION\": 2,\n        \"DATE_FORMAT\": \"dd-MM-yyyy\",\n        \"SUMMARY_ADDRESS\": null,\n        \"SUMMARY_IMAGE\": null,\n        \"SUMMARY_TITLE\": \"Summary\",\n        \"SUMMARY_EXTRA\": \"Updated from Postman Test\",\n        \"SUMMARY_MIN_COMMIT\": \"Uplift for minimum commitment of {quantity} {label}\",\n        \"GRAPH_MAX_SERIES\": 15,\n        \"REPORT_START_MONTH\": 1,\n        \"DISCLAIMER_ENABLED\": false,\n        \"DISCLAIMER_TITLE\": \"Disclaimer\",\n        \"DISCLAIMER_TEXT\": \"\",\n        \"DISCLAIMER_AGREE_BUTTON_TEXT\": \"I agree\",\n        \"PASSWORD_POLICY\": \"length_dictionary\",\n        \"ADDITIONAL_CORS_ORIGINS\": null,\n        \"MAX_LOGIN_ATTEMPTS\": 5,\n        \"LOGIN_ATTEMPTS_INTERVAL\": null,\n        \"BLOCK_LOGIN_DURATION\": \"15 minutes\"\n    }\n}"}],"_postman_id":"33e9626f-a3d1-d6b3-0dd8-816e94479364"}],"id":"dcc7d52d-c5f5-35bd-a28b-182dbba9eec3","description":"<h4 id=\"configuration-keys\">Configuration Keys</h4>\n<p>The system can be configured using these endpoints.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>key</strong></th>\n<th><strong>type</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>APP_DEBUG</td>\n<td><em>bool, default</em> <code>false</code></td>\n<td>Turn debug mode on/off. In debug more, a lot more log files are generated. Not recommended for production systems.</td>\n</tr>\n<tr>\n<td>APP_NAME</td>\n<td><em>string, default</em> <code>Exivity</code></td>\n<td>The name of the application</td>\n</tr>\n<tr>\n<td>APP_ICON</td>\n<td>string, max length: 1024 kilobytes</td>\n<td>Inline image, encoded in base64</td>\n</tr>\n<tr>\n<td>APP_LOGO</td>\n<td>string, max length: 512 kilobytes</td>\n<td>Inline image, encoded in base64</td>\n</tr>\n<tr>\n<td>APP_FAVICON</td>\n<td>string, max length: 5 kilobytes</td>\n<td>Website favicon. Inline image, encoded in base64</td>\n</tr>\n<tr>\n<td>APP_COLOUR</td>\n<td><em>string, default</em> <code>#00a8d8</code></td>\n<td>Brand colour</td>\n</tr>\n<tr>\n<td>APP_CSS</td>\n<td><em>string</em></td>\n<td>Custom CSS to use on the website</td>\n</tr>\n<tr>\n<td>APP_DOCUMENTATION</td>\n<td><em>bool, default</em> <code>true</code></td>\n<td>Enable to show documentation link in the website header.</td>\n</tr>\n<tr>\n<td>APP_LANGUAGE</td>\n<td><em>string, default</em> <code>en</code></td>\n<td></td>\n</tr>\n<tr>\n<td>FINGERPRINTER</td>\n<td><em>string, default</em> <code>secure_ip_useragent</code></td>\n<td>Fingerprint algorithm used to verify user location matches location where token was generated.  <br /><strong>secure</strong> - checks protocals match (e.g. http/https)  <br /><strong>ip</strong> - Checks the IP addresses match.  <br /><strong>useragent</strong> - Checks the request is coming from the same user agent.  <br />Possible values: <code>secure_ip_useragent</code> / <code>secure_useragent</code></td>\n</tr>\n<tr>\n<td>PUBLIC_ROOT</td>\n<td></td>\n<td>The default front-end URL clients should connect to. Fill out as <a href=\"https://example.com\">https://example.com</a>.</td>\n</tr>\n<tr>\n<td>SSO_LOGIN_METHOD</td>\n<td><em>in: local_user_or_ldap, local_user_only, local_user_or_saml, saml_only, local_user_or_ldap_or_saml**Default</em> <code>local_user_or_ldap</code></td>\n<td></td>\n</tr>\n<tr>\n<td>USE_LOCAL_STORAGE</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>ANALYTICS</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>ANALYTICS_EXTRA_PROPERTY</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>ERROR_TRACKING</td>\n<td></td>\n<td>Enabling this option will report anonymous error metrics so we can make our product better.</td>\n</tr>\n<tr>\n<td>BETA_FEATURES</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>USE_CACHE</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>CURRENCY</td>\n<td><em>string, default:</em> <code>EUR</code></td>\n<td></td>\n</tr>\n<tr>\n<td>CURRENCY_FORMAT</td>\n<td><em>string, default:</em> <code>€</code></td>\n<td></td>\n</tr>\n<tr>\n<td>DECIMAL_SEPARATOR</td>\n<td><em>string, default:</em> <code>.</code></td>\n<td></td>\n</tr>\n<tr>\n<td>CSV_DELIMITER</td>\n<td><em>in:</em> <code>,</code>, <code>;</code>, <code>:</code>, <code>\\t</code>, pipe  <br /><em>Default</em>: <code>,</code></td>\n<td>Field delimiter for CSV exports</td>\n</tr>\n<tr>\n<td>CSV_DECIMAL_SEPARATOR</td>\n<td><em>in:</em> <code>,</code>, <code>.</code>  <br /><em>Default:</em> <code>.</code></td>\n<td>Decimal separator for CSV exports</td>\n</tr>\n<tr>\n<td>THOUSAND_SEPARATOR</td>\n<td><em>nullable, in:</em> <code>,</code>, <code>.</code>, <code>'</code> or space  <br /><em>Default:</em> <code>,</code></td>\n<td></td>\n</tr>\n<tr>\n<td>RATE_PRECISION</td>\n<td><em>int, default:</em> <code>8</code></td>\n<td>Precision for rates as displayed on the summary report.</td>\n</tr>\n<tr>\n<td>REPORT_PRECISION</td>\n<td><em>int, default:</em> <code>2</code></td>\n<td>Precision for currency amounts displayed on reports other than summaries.</td>\n</tr>\n<tr>\n<td>SUMMARY_PRECISION</td>\n<td><em>int, default:</em> <code>2</code></td>\n<td>Precision for currency amounts displayed on the summary report.</td>\n</tr>\n<tr>\n<td>QUANTITY_PRECISION</td>\n<td><em>int, default:</em> <code>6</code></td>\n<td></td>\n</tr>\n<tr>\n<td>PERCENTAGE_PRECISION</td>\n<td><em>int, default:</em> <code>2</code></td>\n<td></td>\n</tr>\n<tr>\n<td>DATE_FORMAT</td>\n<td><em>string, default:</em> <code>dd-MM-yyyy</code></td>\n<td><a href=\"https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\">https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table</a></td>\n</tr>\n<tr>\n<td>SUMMARY_TITLE</td>\n<td><em>string, default</em> <code>Summary</code></td>\n<td></td>\n</tr>\n<tr>\n<td>SUMMARY_ADDRESS</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>SUMMARY_IMAGE</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>SUMMARY_EXTRA</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>SUMMARY_MIN_COMMIT</td>\n<td><em>string, default</em> <code>Uplift for minimum commitment of {quantity} {label}</code></td>\n<td>Used as line item description for minimum commit uplifts. The identifier <code>{quantity}</code> will be replaced with the minimum commitment quantity, and <code>{label}</code> will be replaced with the unit label.</td>\n</tr>\n<tr>\n<td>GRAPH_MAX_SERIES</td>\n<td><em>int, default</em> <code>15</code></td>\n<td></td>\n</tr>\n<tr>\n<td>REPORT_START_MONTH</td>\n<td><em>int, default</em> <code>1</code></td>\n<td></td>\n</tr>\n<tr>\n<td>DISCLAIMER_ENABLED</td>\n<td><em>bool, default</em> <code>false</code></td>\n<td>Show disclaimer as a page overlay once to new users. Users will only be allowed to continue to the app if they agree with the disclaimer text.</td>\n</tr>\n<tr>\n<td>DISCLAIMER_TITLE</td>\n<td><em>string, default</em> <code>Disclaimer</code></td>\n<td>Title shown in the disclaimer overlay.</td>\n</tr>\n<tr>\n<td>DISCLAIMER_TEXT</td>\n<td><em>string</em></td>\n<td>Main disclaimer text shown in the disclaimer overlay. Markdown is supported.</td>\n</tr>\n<tr>\n<td>DISCLAIMER_AGREE_BUTTON_TEXT</td>\n<td><em>string, default</em> <code>I agree</code></td>\n<td>Button text shown in the disclaimer overlay which users have to click in order to continue to the app.</td>\n</tr>\n<tr>\n<td>TOKEN_TTL</td>\n<td><em>string, default</em> <code>4 hours</code></td>\n<td>Token lifetime - Set the token expiration time interval. Users will have to login again after their token expires.</td>\n</tr>\n<tr>\n<td>ALLOW_PERSISTENT_TOKENS</td>\n<td><em>bool, default</em> <code>false</code></td>\n<td>Allow users to remain logged in for duration of the token lifetime.</td>\n</tr>\n<tr>\n<td>PASSWORD_POLICY</td>\n<td><em>in: length, length_dictionary, length_dictionary_entropy.**Default</em> <code>length_dictionary</code></td>\n<td><code>length</code> - see PASSWORD_MIN_LENGTH  <br /><code>dictionary</code> - does not allow comon dictionary words.  <br /><code>entropy</code> - the <a href=\"https://en.wikipedia.org/wiki/Entropy_(information_theory)\">Shannon Entropy</a> of the characters must be greater than 3.5</td>\n</tr>\n<tr>\n<td>PASSWORD_MIN_LENGTH</td>\n<td><em>int, default</em> <code>_8_</code> (min: <code>8</code>, max: <code>60</code>)</td>\n<td>Set the minimum length of the passwords used. Defaults to 8.</td>\n</tr>\n<tr>\n<td>MAX_LOGIN_ATTEMPTS</td>\n<td><em>int, default</em> <code>5</code></td>\n<td></td>\n</tr>\n<tr>\n<td>LOGIN_ATTEMPTS_INTERVAL</td>\n<td><em>string</em></td>\n<td>If null, there's no limit, otherwise, <code>15 minutes</code>, <code>1 hour</code>, <code>2 hours</code>, <code>30 minutes</code>, etc.</td>\n</tr>\n<tr>\n<td>BLOCK_LOGIN_DURATION</td>\n<td><em>string, default</em> <code>15 minutes</code></td>\n<td><code>15 minutes</code>, <code>1 hour</code>, <code>2 hours</code>, <code>30 minutes</code>, etc.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"097248e9-69a2-4b86-bd0e-566c8fc937a3","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"2e8f3a47-64ba-4901-9269-8aa9dc2970ce","type":"text/javascript","exec":[""]}}],"_postman_id":"dcc7d52d-c5f5-35bd-a28b-182dbba9eec3"},{"name":"/audit","item":[{"name":"Get audit trail","event":[{"listen":"test","script":{"id":"c7f4eb4c-29a7-466a-9f97-74f1927d007b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains audit data\", function () {","    pm.expect(response.audit).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"5c020eb1-a7d9-8a0a-0608-a1fa08981f97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/audit?start=&end&page[limit]&page[offset]&sort&filter[attribute]","urlObject":{"path":["v1","audit"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>The start of the date range (inclusive) you want to view the audit trail for in <code>YYYY-MM-DD</code> format. Defaults to the current date.</p>\n","type":"text/plain"},"key":"start","value":""},{"description":{"content":"<p>The end of the date range (inclusive) you want to view the audit trail for in <code>YYYY-MM-DD</code> format. Defaults to the current date.</p>\n","type":"text/plain"},"key":"end","value":null},{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute.</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null}],"variable":[]}},"response":[{"id":"310cf0fe-54db-4ec8-a124-880becac02ee","name":"Get audit trail","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/audit?start=&end","host":["{{base_url}}"],"path":["v1","audit"],"query":[{"key":"start","value":"","description":"The start of the date range (inclusive) you want to view the audit trail for in `YYYY-MM-DD` format. Defaults to the current date."},{"key":"end","value":null,"description":"The end of the date range (inclusive) you want to view the audit trail for in `YYYY-MM-DD` format. Defaults to the current date."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:42:26 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:42:26 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"Xbd735fb17da1598c1b617ec8c413c3c5"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xbd735fb17da1598c1b617ec8c413c3c5"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-DH2PEZATWmaGBgxCM53PwH7iDkQeZrea';style-src 'self' 'nonce-DH2PEZATWmaGBgxCM53PwH7iDkQeZrea';font-src 'self' data:"},{"key":"Request-Id","value":"11e17ef9-bb2f-41ac-8997-2044a10914b0"}],"cookie":[],"responseTime":null,"body":"{\n    \"audit\": [\n        {\n            \"id\": 1,\n            \"user_id\": \"\",\n            \"user_name\": \"\",\n            \"component\": \"proximity\",\n            \"category\": \"usergroup\",\n            \"action\": \"create\",\n            \"message\": \"Usergroup 'admins' with id=1 created\",\n            \"created_at\": \"2022-02-04T09:07:26Z\"\n        },\n        {\n            \"id\": 2,\n            \"user_id\": \"\",\n            \"user_name\": \"\",\n            \"component\": \"proximity\",\n            \"category\": \"user\",\n            \"action\": \"create\",\n            \"message\": \"User 'admin' with id=469e01d8-1c95-4923-8bc6-1aebfdf30bc8 created\",\n            \"created_at\": \"2022-02-04T09:07:27Z\"\n        }\n    ]\n}"}],"_postman_id":"5c020eb1-a7d9-8a0a-0608-a1fa08981f97"}],"id":"531d4b13-3f22-c6de-c996-5b523af6cc9e","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"350aeac8-afe4-4111-bc5c-0e1ec558db46","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"3c5a15db-401b-4689-8e52-39b6b240762d","type":"text/javascript","exec":[""]}}],"_postman_id":"531d4b13-3f22-c6de-c996-5b523af6cc9e","description":""},{"name":"/log","item":[{"name":"Retrieve logfiles","event":[{"listen":"test","script":{"id":"32f3e0ad-b589-4197-94b8-85e8e0fb3ea5","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains logs\", function () {","    pm.expect(response.logfiles).to.be.an('array');","});","","// Next request","","const components = [\"proximity\", \"pigeon\", \"use\", \"transcript\", \"edify\", \"chronos\", \"horizon\", \"merlin\", \"griffon\"];","const previousComponent = pm.environment.get(\"component\");","const nextComponent = components[components.indexOf(previousComponent) + 1];","","pm.environment.set(\"component\", nextComponent);","","if (nextComponent) {","    postman.setNextRequest(\"Retrieve logfiles\");","} else {","    postman.setNextRequest(\"Get a full data dump\");","}"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"e2d16e1f-efc0-4d6b-80a0-b488a0ea9d92","exec":["const component = pm.environment.get(\"component\");","","if (!component) {","    pm.environment.set(\"component\", \"proximity\");","}"],"type":"text/javascript"}}],"id":"8f550f28-8abc-e09b-628a-54fa0f090db7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/log?component=use","urlObject":{"path":["v1","log"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Required, in: use, transcript, edify, proximity, chronos, pigeon, horizon, merlin, griffon</p>\n","type":"text/plain"},"key":"component","value":"use"}],"variable":[]}},"response":[{"id":"cfeebcd6-3f12-4048-8e09-6f285f7cd32a","name":"Retrieve logfiles","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/log?component=use&limit=&filter=&truncate=","host":["{{base_url}}"],"path":["v1","log"],"query":[{"key":"component","value":"use","description":"The component to receive the logfiles for, can be `use`, `transcript`, `edify`, `chronos`, `proximity`, `pigeon`, `horizon`, `merlin` or `griffon`."},{"key":"limit","value":"","description":"Limit the maximum number of  logfiles to return. Defaults to `100`."},{"key":"filter","value":"","description":"Optionally filter the logfiles by filename. Use the asterisk (`*`) for wildcard matching."},{"key":"truncate","value":"","description":"Whether to truncate the logfile lines. Use `0` to not disable truncating, or specify a number to receive the last `x` lines. Defaults to `1000`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:43:45 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:43:45 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X0f122269ff964353786cbc4fff1c7831"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X0f122269ff964353786cbc4fff1c7831"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-cmsbVJxxI00gD7AjOZboZDAtPfNh6RHm';style-src 'self' 'nonce-cmsbVJxxI00gD7AjOZboZDAtPfNh6RHm';font-src 'self' data:"},{"key":"Request-Id","value":"9cd267cb-12f9-4ee2-aa23-e3f811aa004a"}],"cookie":[],"responseTime":null,"body":"\n{\n    \"logfiles\": [\n        {\n            \"filename\": \"proximity-2022-02-04.log\",\n            \"created\": \"2022-02-04T08:53:05Z\",\n            \"metadata\": [],\n            \"lines\": [\n                {\n                    \"date\": \"2022-02-04T08:53:05.260+00:00\",\n                    \"level\": 200,\n                    \"message\": \"App\\\\Audit::write\",\n                    \"metadata\": {\n                        \"appName\": \"local\",\n                        \"request-id\": \"b05307d1-dfc7-4d43-b1af-73b73c921c86\",\n                        \"message\": \"Failed login attempt for 'admin' from ::1\",\n                        \"url\": \"/v1/auth/token?app=\",\n                        \"ip\": \"::1\",\n                        \"http_method\": \"POST\",\n                        \"server\": \"localhost\",\n                        \"referrer\": null\n                    }\n                },\n                {\n                    \"date\": \"2022-02-04T10:04:30.640+00:00\",\n                    \"level\": 200,\n                    \"message\": \"The name has already been taken.\",\n                    \"metadata\": {\n                        \"appName\": \"local\",\n                        \"request-id\": \"b721bf44-973d-4531-999a-3b5fcd6862f0\",\n                        \"rules\": {\n                            \"name\": \"required|string|unique:metadata_definition,name\",\n                            \"fields\": \"required|array\",\n                            \"fields.*.name\": \"required|string\",\n                            \"fields.*.type\": \"required|in:string,list,numeric,date\",\n                            \"fields.*.list\": \"required_if:fields.*.type,list\"\n                        },\n                        \"url\": \"/v1/metadatadefinitions\",\n                        \"ip\": \"::1\",\n                        \"http_method\": \"POST\",\n                        \"server\": \"localhost\",\n                        \"referrer\": null\n                    }\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"8f550f28-8abc-e09b-628a-54fa0f090db7"}],"id":"6305942f-64a3-6d05-3b3a-e5334cdbf321","description":"<p>Exivity offers the possibility to get insight into the log files of different components. This feature enables the users to identify any potential errors on their own, making the overall troubleshooting process smoother.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/troubleshooting/logs\">https://docs.exivity.com/troubleshooting/logs</a></p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"57c71046-3f9e-4bc7-99c4-317729503378","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"eb143f19-619d-4af1-832e-19773c23be90","type":"text/javascript","exec":[""]}}],"_postman_id":"6305942f-64a3-6d05-3b3a-e5334cdbf321"},{"name":"/dump","item":[{"name":"Get a full data dump","event":[{"listen":"test","script":{"id":"4ef46d69-e7d3-4168-a7c9-e20b4535b27b","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});"],"type":"text/javascript"}}],"id":"0778327e-6143-98a6-3df4-c2727a16ff18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"text/csv","description":"<p>Specify either text/csv or application/json.</p>\n"}],"url":"{{base_url}}/v1/dump/data?models=&progress","urlObject":{"path":["v1","dump","data"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Optionally provide a comma separated list of models to include.</p>\n","type":"text/plain"},"key":"models","value":""},{"description":{"content":"<p>Use progress separators within dump, can be 0 or 1. Defaults to 1.</p>\n","type":"text/plain"},"key":"progress","value":null}],"variable":[]}},"response":[],"_postman_id":"0778327e-6143-98a6-3df4-c2727a16ff18"}],"id":"3d388714-3dd3-4725-9a9e-d34f1b59ca06","auth":{"type":"noauth","isInherited":false},"_postman_id":"3d388714-3dd3-4725-9a9e-d34f1b59ca06","description":""},{"name":"/system","item":[{"name":"/licence","item":[{"name":"Check licence","event":[{"listen":"test","script":{"id":"fb73b126-8d44-4004-accf-9992d335fd3e","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response).to.have.keys([","        \"status\",","        \"message\",","        \"hash\",","        \"expiresAfter\",","        \"payload\",","    ]);","});"],"type":"text/javascript"}}],"id":"ff008753-124d-0d0f-f958-cb0864a7298f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/licence","urlObject":{"path":["v1","system","licence"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"2be0e368-59fb-f07a-79ba-d826670260e7","name":"Check licence","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","disabled":false}],"url":"{{base_url}}/v1/system/licence"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":""},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":""},{"key":"connection","value":"close","name":"connection","description":""},{"key":"content-type","value":"application/json","name":"content-type","description":""},{"key":"date","value":"Wed, 14 Feb 2018 10:27:15 +0000, Wed, 14 Feb 2018 10:27:15 GMT","name":"date","description":""},{"key":"host","value":"localhost:8002","name":"host","description":""},{"key":"phpdebugbar-id","value":"a089800cd6c1b11c33b854a251694d98","name":"phpdebugbar-id","description":""},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":""}],"cookie":[],"responseTime":"143","body":"{\"status\":\"expired\",\"message\":\"The current license was valid until January 31, 2017.\",\"hash\":\"4062176ea1471472332ab3afbc2d5dc58af621b7\",\"expiresAfter\":\"2017-01-31\",\"payload\":{\"start\":\"2017-01-01\",\"end\":\"2017-01-31\",\"type\":\"all\",\"limits\":{\"account_limit\":\"1\",\"service_limit\":\"1\"}}}"}],"_postman_id":"ff008753-124d-0d0f-f958-cb0864a7298f"},{"name":"Update licence","event":[{"listen":"test","script":{"id":"c9b532f1-f969-4c8f-84f4-9800455a3a23","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response).to.have.keys([","        \"status\",","        \"message\",","        \"hash\",","        \"expiresAfter\",","        \"payload\",","    ]);","});"],"type":"text/javascript"}}],"id":"ee61114a-c006-4959-a85c-68250a855779","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"licence\": \"{{licence}}\"\n}"},"url":"{{base_url}}/v1/system/licence","urlObject":{"path":["v1","system","licence"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"a5ca2013-fade-470f-96ff-9ff1d23673e8","name":"Update licence","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"license\": \"{{licence}}\"\n}"},"url":"{{base_url}}/v1/system/licence"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":""},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":""},{"key":"connection","value":"close","name":"connection","description":""},{"key":"content-type","value":"application/json","name":"content-type","description":""},{"key":"date","value":"Wed, 14 Feb 2018 10:23:47 +0000, Wed, 14 Feb 2018 10:23:47 GMT","name":"date","description":""},{"key":"host","value":"localhost:8002","name":"host","description":""},{"key":"phpdebugbar-id","value":"c6b7d899a9439eb8ec11ed209dd47c69","name":"phpdebugbar-id","description":""},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":""}],"cookie":[],"responseTime":null,"body":"{ \"status\": \"valid\", \"message\": \"The current licence is valid until July 1, 2027.\", \"hash\": \"83b44524e07b8cb94f110010dd15fa82b352d1fa\", \"expiresAfter\": \"2027-07-01\", \"payload\": { \"_version\": \"1\", \"start\": \"2021-06-01\", \"end\": \"2027-07-01\", \"limits\": \"{}\" } }"}],"_postman_id":"ee61114a-c006-4959-a85c-68250a855779"}],"id":"4c327b76-ee10-fe5a-3fb1-c7d7453864e2","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"cde91eaa-49ff-4015-b9d2-047091fd199d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"20396de3-4105-4e77-bfca-a121323d4c72","type":"text/javascript","exec":[""]}}],"_postman_id":"4c327b76-ee10-fe5a-3fb1-c7d7453864e2","description":""},{"name":"/cache","item":[{"name":"Get cache information","event":[{"listen":"test","script":{"id":"fc12b936-c455-4ec8-8b52-55ceb5060a36","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data).to.have.keys([","        \"proximity\",","        \"edify\",","    ]);","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"bcebacd6-6323-414f-a421-7ce6af605645","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"49d3aa19-ff86-26bd-c58b-d7704eee81a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/cache","urlObject":{"path":["v1","system","cache"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"a5241eee-fe6c-013b-06ad-4d6d2366ad0e","name":"Get cache information","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","disabled":false}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/cache"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":""},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":""},{"key":"connection","value":"close","name":"connection","description":""},{"key":"content-type","value":"application/json","name":"content-type","description":""},{"key":"date","value":"Wed, 14 Feb 2018 10:30:01 +0000, Wed, 14 Feb 2018 10:30:01 GMT","name":"date","description":""},{"key":"host","value":"localhost:8002","name":"host","description":""},{"key":"phpdebugbar-id","value":"df70786eedbca0f8fa5fae6872d8321c","name":"phpdebugbar-id","description":""},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":""}],"cookie":[],"responseTime":"141","body":"{\"data\":{\"proximity\":{\"size\":\"(not running)\"},\"edify\":{\"size\":\"(unknown)\"}}}"}],"_postman_id":"49d3aa19-ff86-26bd-c58b-d7704eee81a1"},{"name":"Delete cache","event":[{"listen":"test","script":{"id":"6575058c-5059-42ab-94f9-0e8d8c952d78","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});"],"type":"text/javascript"}}],"id":"9cac764c-f8dc-5103-f963-1169a20585cf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/cache?component","urlObject":{"path":["v1","system","cache"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Optionally specify a component to delete the caches for. Available options: <code>proximity</code>, <code>edify</code>.</p>\n","type":"text/plain"},"key":"component","value":null}],"variable":[]}},"response":[{"id":"8b04ee50-e887-dc42-527d-ee2a17b6f278","name":"Delete cache","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/system/cache?component","host":["{{base_url}}"],"path":["v1","system","cache"],"query":[{"key":"component","value":null,"description":"Optionally specify a component to delete the caches for. Available options: `proximity`, `edify`."}]}},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":""},{"key":"connection","value":"close","name":"connection","description":""},{"key":"content-type","value":"application/json","name":"content-type","description":""},{"key":"date","value":"Wed, 14 Feb 2018 10:35:02 +0000, Wed, 14 Feb 2018 10:35:02 GMT","name":"date","description":""},{"key":"host","value":"localhost:8002","name":"host","description":""},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":""}],"cookie":[],"responseTime":"497","body":""}],"_postman_id":"9cac764c-f8dc-5103-f963-1169a20585cf"}],"id":"59ed4948-70f0-9b9d-b3b8-bce0bdefb3ac","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"ac53950c-bd33-4cab-9f24-1345279dee52","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"cbf248cd-3fa5-4908-acf3-94db85120424","type":"text/javascript","exec":[""]}}],"_postman_id":"59ed4948-70f0-9b9d-b3b8-bce0bdefb3ac","description":""},{"name":"/saml","item":[{"name":"Get SAML configuration","event":[{"listen":"test","script":{"id":"1409e45a-7dc6-4d4d-9e5e-b2c6850102b3","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response).to.have.keys([","        \"configuration\"","    ]);","});"],"type":"text/javascript"}}],"id":"83e7d42d-f78e-4404-8bac-2ecaba2806fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/saml","urlObject":{"path":["v1","system","saml"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"83e7d42d-f78e-4404-8bac-2ecaba2806fc"},{"name":"Update SAML configuration","id":"885d029a-c81a-41ac-88b5-4bb56b58305c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{  \r\n   \"configuration\":{  \r\n      \"SAML_ENTITY_ID\": \"https://test\",\r\n      \"SAML_X509_CERTIFICATE\": \"...\"\r\n   }\r\n}"},"url":"{{base_url}}/v1/system/saml","urlObject":{"path":["v1","system","saml"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"885d029a-c81a-41ac-88b5-4bb56b58305c"}],"id":"66cf1965-c3d6-421a-b117-9444e84fc22f","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"8ecca2fc-a54e-4013-8c32-c0f1bd854fe1","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"4dc71194-8d5b-4be3-900b-f00e086c0aeb","type":"text/javascript","exec":[""]}}],"_postman_id":"66cf1965-c3d6-421a-b117-9444e84fc22f","description":""},{"name":"/services","item":[{"name":"Get system services config","event":[{"listen":"test","script":{"id":"691603e3-ca06-4b11-bd78-11b28338be01","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response.configuration).to.be.an('object');","});","","pm.test(\"Response contains all keys\", function () {","    var required = [","        \"MAIL_HOST\",","        \"MAIL_PORT\",","        \"MAIL_USERNAME\",","        \"MAIL_PASSWORD\",","        \"MAIL_FROM_ADDRESS\",","        \"MAIL_FROM_NAME\",","        \"MAIL_DRIVER\",","        \"MAIL_ENCRYPTION\",","        \"NEXMO_KEY\",","        \"NEXMO_SECRET\",","        \"NEXMO_FROM_NUMBER\"","    ];","      ","    _.each(required, (item) => {","        pm.expect(response.configuration).to.have.property(item);","    });","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"b75e1807-0fe0-465d-9598-b70a8e29a95c","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"6e8e4836-3f44-4594-aa75-ca63d6f99110","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/services/","urlObject":{"path":["v1","system","services",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"2392f550-f455-4f2c-ae4f-ee6c91b73a80","name":"Get system services config","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/services/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 27 Feb 2024 14:23:29 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"Xca216bec4b574aaa9674875037096db0"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"Xca216bec4b574aaa9674875037096db0"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-4NJshgzhPzByydyFbIVEPvXoFFjPKI7U';style-src 'self' 'nonce-4NJshgzhPzByydyFbIVEPvXoFFjPKI7U';font-src 'self' data:"},{"key":"Request-Id","value":"50d44c84-a28d-4ea4-b792-ab0f9e26d13e"}],"cookie":[],"responseTime":null,"body":"{\n    \"configuration\": {\n        \"LDAP_ACCOUNT_PREFIX\": null,\n        \"LDAP_ACCOUNT_SUFFIX\": null,\n        \"LDAP_BASE_DN\": null,\n        \"LDAP_DEFAULT_USERGROUP_ID\": null,\n        \"LDAP_EMAIL_FIELD\": \"mail\",\n        \"LDAP_ENCRYPTION\": null,\n        \"LDAP_HOSTS\": null,\n        \"LDAP_PORT\": \"389\",\n        \"LDAP_TIMEOUT\": \"5\",\n        \"LDAP_USERNAME_FIELD\": \"samAccountName\",\n        \"MAIL_DRIVER\": \"SMTP\",\n        \"MAIL_ENCRYPTION\": \"tls\",\n        \"MAIL_FROM_ADDRESS\": null,\n        \"MAIL_FROM_NAME\": \"MyApp\",\n        \"MAIL_HOST\": null,\n        \"MAIL_MAX_FILESIZE\": \"2e+7\",\n        \"MAIL_PASSWORD\": \"********\",\n        \"MAIL_PORT\": \"465\",\n        \"MAIL_USERNAME\": null,\n        \"NEXMO_FROM_NUMBER\": \"EXIVITY\",\n        \"NEXMO_KEY\": null,\n        \"NEXMO_SECRET\": \"********\"\n    }\n}"}],"_postman_id":"6e8e4836-3f44-4594-aa75-ca63d6f99110"},{"name":"Update system services config","event":[{"listen":"test","script":{"id":"691603e3-ca06-4b11-bd78-11b28338be01","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response).to.have.keys([","        \"code\",","        \"message\",","        \"configuration\"","    ]);","    pm.expect(response.configuration).to.be.an('object');","    pm.expect(response.configuration.MAIL_FROM_NAME).to.equal(\"MyNewAppName\")","});"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"c6fe76a2-f9d5-4198-bebb-c4e03cbc2e06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{  \r\n   \"configuration\":{  \r\n      \"MAIL_FROM_NAME\": \"MyNewAppName\"\r\n   }\r\n}"},"url":"{{base_url}}/v1/system/services/","urlObject":{"path":["v1","system","services",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"908d989a-4fa4-499c-ab10-788e144b7952","name":"Update system services config","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{  \r\n   \"configuration\":{  \r\n      \"MAIL_FROM_NAME\": \"MyApp\"\r\n   }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/v1/system/services/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/8.3.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Tue, 27 Feb 2024 14:23:06 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"X-Clockwork-Id","value":"X4088466fa1eab1bfe624eb653f2d98a4"},{"key":"X-Clockwork-Version","value":"9"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"phpdebugbar-id","value":"X4088466fa1eab1bfe624eb653f2d98a4"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-zv35WcSJs8Lo7LLbzDKyOZMRdN7BhrCU';style-src 'self' 'nonce-zv35WcSJs8Lo7LLbzDKyOZMRdN7BhrCU';font-src 'self' data:"},{"key":"Request-Id","value":"5b84e15e-ce08-4b99-8e08-fb48ebcbd14a"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 200,\n    \"message\": \"Configuration saved.\",\n    \"configuration\": {\n        \"LDAP_ACCOUNT_PREFIX\": null,\n        \"LDAP_ACCOUNT_SUFFIX\": null,\n        \"LDAP_BASE_DN\": null,\n        \"LDAP_DEFAULT_USERGROUP_ID\": null,\n        \"LDAP_EMAIL_FIELD\": \"mail\",\n        \"LDAP_ENCRYPTION\": null,\n        \"LDAP_HOSTS\": null,\n        \"LDAP_PORT\": \"389\",\n        \"LDAP_TIMEOUT\": \"5\",\n        \"LDAP_USERNAME_FIELD\": \"samAccountName\",\n        \"MAIL_DRIVER\": \"SMTP\",\n        \"MAIL_ENCRYPTION\": \"tls\",\n        \"MAIL_FROM_ADDRESS\": null,\n        \"MAIL_FROM_NAME\": \"MyApp\",\n        \"MAIL_HOST\": null,\n        \"MAIL_MAX_FILESIZE\": \"2e+7\",\n        \"MAIL_PASSWORD\": \"********\",\n        \"MAIL_PORT\": \"465\",\n        \"MAIL_USERNAME\": null,\n        \"NEXMO_FROM_NUMBER\": \"EXIVITY\",\n        \"NEXMO_KEY\": null,\n        \"NEXMO_SECRET\": \"********\"\n    }\n}"}],"_postman_id":"c6fe76a2-f9d5-4198-bebb-c4e03cbc2e06"}],"id":"bbec12de-2991-44c4-9fff-e2693460e821","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"ac40bcea-4bda-46c2-94bd-faf0006a77c4","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"1a3cf116-323e-4587-ac2e-0c741b67bad2","type":"text/javascript","exec":[""]}}],"_postman_id":"bbec12de-2991-44c4-9fff-e2693460e821","description":""},{"name":"Get system overview","event":[{"listen":"test","script":{"id":"691603e3-ca06-4b11-bd78-11b28338be01","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response).to.have.keys([","        \"version\",","        \"flags\"","    ]);","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"49fab34e-80bd-4612-a62d-0a8a6d07ad40","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"bd9b8d9c-2dde-4714-a83c-3faa7b16022d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system","description":"<p>⚠️ This endpoint is deprecated and may be removed in future versions of Exivity. Use <code>/system/version</code> and <code>/system/flags</code> instead.</p>\n","urlObject":{"path":["v1","system"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"490a4c6b-e500-4f0c-b2f7-f71d1999e71b","name":"Get version information","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/version"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":"The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"connection","value":"close","name":"connection","description":"Options that are desired for the connection"},{"key":"content-type","value":"application/json","name":"content-type","description":"The mime type of this content"},{"key":"date","value":"Wed, 14 Feb 2018 10:41:34 +0000, Wed, 14 Feb 2018 10:41:34 GMT","name":"date","description":"The date and time that the message was sent"},{"key":"host","value":"localhost:8002","name":"host","description":"Custom header"},{"key":"phpdebugbar-id","value":"761895ecc35993dc557ff3149dc64d58","name":"phpdebugbar-id","description":"Custom header"},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":"Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"version\": \"1.2.0\",\r\n        \"components\": {\r\n            \"exivityd\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"89747002f3daa264fd58782f820854414c2b71f9\"\r\n            },\r\n            \"db\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"2c25fbe3b49608b745c5337787c8845ed8f9504a\"\r\n            },\r\n            \"use\": {\r\n                \"ref\": \"v1.2.0\",\r\n                \"hash\": \"7e937cbc5b8ccb1557c0108af4c48aad8735fe53\"\r\n            },\r\n            \"transcript\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"f9a9db7c57896cefd2a6a4d96aacbe294d67e29f\"\r\n            },\r\n            \"edify\": {\r\n                \"ref\": \"v1.0.2\",\r\n                \"hash\": \"34017a9bebe5b42290534d0c5ab6988759eb25f6\"\r\n            },\r\n            \"glass\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"ea3b0d344ddd80227f40a00baf8b8af5691a2e8d\"\r\n            },\r\n            \"proximity\": {\r\n                \"ref\": \"v1.0.3\",\r\n                \"hash\": \"72ae7b190714f69918575d5c1baa212db962fea8\",\r\n                \"api\": \"v1\"\r\n            },\r\n            \"eternity\": {\r\n                \"ref\": \"v1.0.1\",\r\n                \"hash\": \"6d0ff2b38d15d9832297bc16c807320e035ddb96\"\r\n            }\r\n        }\r\n    }\r\n}"}],"_postman_id":"bd9b8d9c-2dde-4714-a83c-3faa7b16022d"},{"name":"Get system overview (unauthenticated)","event":[{"listen":"test","script":{"id":"691603e3-ca06-4b11-bd78-11b28338be01","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response).to.have.keys([","        \"version\",","        \"flags\"","    ]);","});"],"type":"text/javascript"}}],"id":"2b142b9b-b9cd-41a6-9d81-7a324157eb3b","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system","description":"<p>⚠️ This endpoint is deprecated and may be removed in future versions of Exivity. Use <code>/system/version</code> and <code>/system/flags</code> instead.</p>\n","urlObject":{"path":["v1","system"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"040204ec-6e96-40c0-9d7c-786a6ce7adf4","name":"Get version information","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/version"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":"The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"connection","value":"close","name":"connection","description":"Options that are desired for the connection"},{"key":"content-type","value":"application/json","name":"content-type","description":"The mime type of this content"},{"key":"date","value":"Wed, 14 Feb 2018 10:41:34 +0000, Wed, 14 Feb 2018 10:41:34 GMT","name":"date","description":"The date and time that the message was sent"},{"key":"host","value":"localhost:8002","name":"host","description":"Custom header"},{"key":"phpdebugbar-id","value":"761895ecc35993dc557ff3149dc64d58","name":"phpdebugbar-id","description":"Custom header"},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":"Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"version\": \"1.2.0\",\r\n        \"components\": {\r\n            \"exivityd\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"89747002f3daa264fd58782f820854414c2b71f9\"\r\n            },\r\n            \"db\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"2c25fbe3b49608b745c5337787c8845ed8f9504a\"\r\n            },\r\n            \"use\": {\r\n                \"ref\": \"v1.2.0\",\r\n                \"hash\": \"7e937cbc5b8ccb1557c0108af4c48aad8735fe53\"\r\n            },\r\n            \"transcript\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"f9a9db7c57896cefd2a6a4d96aacbe294d67e29f\"\r\n            },\r\n            \"edify\": {\r\n                \"ref\": \"v1.0.2\",\r\n                \"hash\": \"34017a9bebe5b42290534d0c5ab6988759eb25f6\"\r\n            },\r\n            \"glass\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"ea3b0d344ddd80227f40a00baf8b8af5691a2e8d\"\r\n            },\r\n            \"proximity\": {\r\n                \"ref\": \"v1.0.3\",\r\n                \"hash\": \"72ae7b190714f69918575d5c1baa212db962fea8\",\r\n                \"api\": \"v1\"\r\n            },\r\n            \"eternity\": {\r\n                \"ref\": \"v1.0.1\",\r\n                \"hash\": \"6d0ff2b38d15d9832297bc16c807320e035ddb96\"\r\n            }\r\n        }\r\n    }\r\n}"}],"_postman_id":"2b142b9b-b9cd-41a6-9d81-7a324157eb3b"},{"name":"Get version information","event":[{"listen":"test","script":{"id":"96461090-a046-41de-94fd-d53e1d9c35fe","type":"text/javascript","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data).to.have.keys([","        \"version\",","        \"components\"","    ]);","});"]}}],"id":"153793b3-ca6e-fc08-82db-94fd36dfb429","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/version","urlObject":{"path":["v1","system","version"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"ac82e06a-385a-f0ee-adc9-46f4c1cf0ba9","name":"Get version information","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","disabled":false}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/version"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":""},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":""},{"key":"connection","value":"close","name":"connection","description":""},{"key":"content-type","value":"application/json","name":"content-type","description":""},{"key":"date","value":"Wed, 14 Feb 2018 10:41:34 +0000, Wed, 14 Feb 2018 10:41:34 GMT","name":"date","description":""},{"key":"host","value":"localhost:8002","name":"host","description":""},{"key":"phpdebugbar-id","value":"761895ecc35993dc557ff3149dc64d58","name":"phpdebugbar-id","description":""},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":""}],"cookie":[],"responseTime":"135","body":"{\r\n    \"data\": {\r\n        \"version\": \"1.2.0\",\r\n        \"components\": {\r\n            \"exivityd\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"89747002f3daa264fd58782f820854414c2b71f9\"\r\n            },\r\n            \"db\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"2c25fbe3b49608b745c5337787c8845ed8f9504a\"\r\n            },\r\n            \"use\": {\r\n                \"ref\": \"v1.2.0\",\r\n                \"hash\": \"7e937cbc5b8ccb1557c0108af4c48aad8735fe53\"\r\n            },\r\n            \"transcript\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"f9a9db7c57896cefd2a6a4d96aacbe294d67e29f\"\r\n            },\r\n            \"edify\": {\r\n                \"ref\": \"v1.0.2\",\r\n                \"hash\": \"34017a9bebe5b42290534d0c5ab6988759eb25f6\"\r\n            },\r\n            \"glass\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"ea3b0d344ddd80227f40a00baf8b8af5691a2e8d\"\r\n            },\r\n            \"proximity\": {\r\n                \"ref\": \"v1.0.3\",\r\n                \"hash\": \"72ae7b190714f69918575d5c1baa212db962fea8\",\r\n                \"api\": \"v1\"\r\n            },\r\n            \"eternity\": {\r\n                \"ref\": \"v1.0.1\",\r\n                \"hash\": \"6d0ff2b38d15d9832297bc16c807320e035ddb96\"\r\n            }\r\n        }\r\n    }\r\n}"}],"_postman_id":"153793b3-ca6e-fc08-82db-94fd36dfb429"},{"name":"Get version information (unauthenticated)","event":[{"listen":"test","script":{"id":"96461090-a046-41de-94fd-d53e1d9c35fe","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data).to.have.keys([","        \"version\"","    ]);","});"],"type":"text/javascript"}}],"id":"4ccda334-ed65-4f58-8825-ba2960cf275f","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/version","urlObject":{"path":["v1","system","version"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"cfcec455-8ce2-40ba-9166-407b539ed6ff","name":"Get version information","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/version"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":"The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"connection","value":"close","name":"connection","description":"Options that are desired for the connection"},{"key":"content-type","value":"application/json","name":"content-type","description":"The mime type of this content"},{"key":"date","value":"Wed, 14 Feb 2018 10:41:34 +0000, Wed, 14 Feb 2018 10:41:34 GMT","name":"date","description":"The date and time that the message was sent"},{"key":"host","value":"localhost:8002","name":"host","description":"Custom header"},{"key":"phpdebugbar-id","value":"761895ecc35993dc557ff3149dc64d58","name":"phpdebugbar-id","description":"Custom header"},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":"Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"version\": \"1.2.0\",\r\n        \"components\": {\r\n            \"exivityd\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"89747002f3daa264fd58782f820854414c2b71f9\"\r\n            },\r\n            \"db\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"2c25fbe3b49608b745c5337787c8845ed8f9504a\"\r\n            },\r\n            \"use\": {\r\n                \"ref\": \"v1.2.0\",\r\n                \"hash\": \"7e937cbc5b8ccb1557c0108af4c48aad8735fe53\"\r\n            },\r\n            \"transcript\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"f9a9db7c57896cefd2a6a4d96aacbe294d67e29f\"\r\n            },\r\n            \"edify\": {\r\n                \"ref\": \"v1.0.2\",\r\n                \"hash\": \"34017a9bebe5b42290534d0c5ab6988759eb25f6\"\r\n            },\r\n            \"glass\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"ea3b0d344ddd80227f40a00baf8b8af5691a2e8d\"\r\n            },\r\n            \"proximity\": {\r\n                \"ref\": \"v1.0.3\",\r\n                \"hash\": \"72ae7b190714f69918575d5c1baa212db962fea8\",\r\n                \"api\": \"v1\"\r\n            },\r\n            \"eternity\": {\r\n                \"ref\": \"v1.0.1\",\r\n                \"hash\": \"6d0ff2b38d15d9832297bc16c807320e035ddb96\"\r\n            }\r\n        }\r\n    }\r\n}"}],"_postman_id":"4ccda334-ed65-4f58-8825-ba2960cf275f"},{"name":"Get available flags","event":[{"listen":"test","script":{"id":"94267270-91b7-4466-bddd-2b7802150c07","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data).to.have.keys([","        \"SUPPORTS_PDF_EXPORT\",","        \"SUPPORTS_SENDING_MAIL\"","    ]);","});"],"type":"text/javascript"}}],"id":"3a2e9633-74a6-468f-ad78-e111b7a68f54","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/flags","urlObject":{"path":["v1","system","flags"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"6d38b4ff-de3e-4dac-80d3-7c16b2e7d45e","name":"Get version information","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/version"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":"The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"connection","value":"close","name":"connection","description":"Options that are desired for the connection"},{"key":"content-type","value":"application/json","name":"content-type","description":"The mime type of this content"},{"key":"date","value":"Wed, 14 Feb 2018 10:41:34 +0000, Wed, 14 Feb 2018 10:41:34 GMT","name":"date","description":"The date and time that the message was sent"},{"key":"host","value":"localhost:8002","name":"host","description":"Custom header"},{"key":"phpdebugbar-id","value":"761895ecc35993dc557ff3149dc64d58","name":"phpdebugbar-id","description":"Custom header"},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":"Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"version\": \"1.2.0\",\r\n        \"components\": {\r\n            \"exivityd\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"89747002f3daa264fd58782f820854414c2b71f9\"\r\n            },\r\n            \"db\": {\r\n                \"ref\": \"v1.0.0\",\r\n                \"hash\": \"2c25fbe3b49608b745c5337787c8845ed8f9504a\"\r\n            },\r\n            \"use\": {\r\n                \"ref\": \"v1.2.0\",\r\n                \"hash\": \"7e937cbc5b8ccb1557c0108af4c48aad8735fe53\"\r\n            },\r\n            \"transcript\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"f9a9db7c57896cefd2a6a4d96aacbe294d67e29f\"\r\n            },\r\n            \"edify\": {\r\n                \"ref\": \"v1.0.2\",\r\n                \"hash\": \"34017a9bebe5b42290534d0c5ab6988759eb25f6\"\r\n            },\r\n            \"glass\": {\r\n                \"ref\": \"v1.1.0\",\r\n                \"hash\": \"ea3b0d344ddd80227f40a00baf8b8af5691a2e8d\"\r\n            },\r\n            \"proximity\": {\r\n                \"ref\": \"v1.0.3\",\r\n                \"hash\": \"72ae7b190714f69918575d5c1baa212db962fea8\",\r\n                \"api\": \"v1\"\r\n            },\r\n            \"eternity\": {\r\n                \"ref\": \"v1.0.1\",\r\n                \"hash\": \"6d0ff2b38d15d9832297bc16c807320e035ddb96\"\r\n            }\r\n        }\r\n    }\r\n}"}],"_postman_id":"3a2e9633-74a6-468f-ad78-e111b7a68f54"},{"name":"Get third party licences","event":[{"listen":"test","script":{"id":"7aa984ac-8b97-4b34-bd4c-0a64da83dec5","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains data\", function () {","    // Debug ","    console.log(Object.keys(response));","    ","    // Test","    pm.expect(response).to.be.an('object');","","});","","pm.test(\"Response contains keys\", function () {","    pm.expect(response).to.have.property(\"chronos\");","    pm.expect(response).to.have.property(\"use\");","    pm.expect(response).to.have.property(\"transcript\");","    pm.expect(response).to.have.property(\"edify\");","    pm.expect(response).to.have.property(\"proximity\");","    pm.expect(response).to.have.property(\"glass\");","    pm.expect(response).to.have.property(\"db\");","    pm.expect(response).to.have.property(\"horizon\");","    pm.expect(response).to.have.property(\"pigeon\");","    pm.expect(response).to.have.property(\"scaffold\");","    pm.expect(response).to.have.property(\"merlin\");","    pm.expect(response).to.have.property(\"griffon\");","});"],"type":"text/javascript"}}],"id":"c7332fa8-229d-64c1-c33f-b5887d5b0c09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/third-party-licences","urlObject":{"path":["v1","system","third-party-licences"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"6f57dbe7-cd00-0cb3-f90e-cf71e98f9ce7","name":"Disclaimer","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","disabled":false}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system/disclaimer"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Transfer-Encoding","value":"chunked","name":"Transfer-Encoding","description":""},{"key":"cache-control","value":"no-cache, private","name":"cache-control","description":""},{"key":"connection","value":"close","name":"connection","description":""},{"key":"content-type","value":"application/json","name":"content-type","description":""},{"key":"date","value":"Wed, 14 Feb 2018 10:37:42 +0000, Wed, 14 Feb 2018 10:37:42 GMT","name":"date","description":""},{"key":"host","value":"localhost:8002","name":"host","description":""},{"key":"phpdebugbar-id","value":"efaa89faf52487b85b36df11a8f142d2","name":"phpdebugbar-id","description":""},{"key":"x-powered-by","value":"PHP/7.1.4","name":"x-powered-by","description":""}],"cookie":[],"responseTime":"403","body":"{\n    \"use\": \"...\",\n    \"transcript\": \"...\",\n    \"edify\": \"...\",\n    \"proximity\": \"...\",\n    \"glass\": \"...\"\n}"}],"_postman_id":"c7332fa8-229d-64c1-c33f-b5887d5b0c09"}],"id":"35038ec5-f72e-b671-fce9-e9a126fba8b6","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"961a0621-9198-476a-8404-c2853c9d6c9a","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"58dbcdee-6ac3-41b2-b3f3-8ab102792409","type":"text/javascript","exec":[""]}}],"_postman_id":"35038ec5-f72e-b671-fce9-e9a126fba8b6","description":""},{"name":"/translations","item":[{"name":"Create translation","event":[{"listen":"test","script":{"id":"0500390f-a1a9-475f-8bf7-48d7ad8252cf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response.data).to.be.an('object');","});","","pm.test(\"Response contains all keys\", function () {","    pm.expect(response.data.hello).to.be.a('string');","    pm.expect(response.data.hello).to.be.eql('Hello World');","    pm.expect(response.data.bye).to.be.a('string');","    pm.expect(response.data.bye).to.be.eql('Goodbye');","    pm.expect(response.data.happy).to.be.eql(1);","});"],"type":"text/javascript"}}],"id":"4238e088-4c00-4405-b257-3407a99bc19f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"hello\": \"Hello World\",\r\n\t\t\"bye\": \"Goodbye\",\r\n\t\t\"happy\": true\r\n\t}\r\n}"},"url":"{{base_url}}/v1/translations/:locale/:filename","description":"<p>⚠️ This endpoint is deprecated and may be removed in future versions of Exivity.</p>\n","urlObject":{"path":["v1","translations",":locale",":filename"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ISO 639-1 two letter code representation of names of language</p>\n","type":"text/plain"},"type":"string","value":"en","key":"locale"},{"type":"string","value":"words","key":"filename"}]}},"response":[],"_postman_id":"4238e088-4c00-4405-b257-3407a99bc19f"},{"name":"Get translation","event":[{"listen":"test","script":{"id":"0500390f-a1a9-475f-8bf7-48d7ad8252cf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response.data).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"8ce8a5d3-cf35-4fe3-ace2-4d02041fdd56","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/translations/:locale/:filename","description":"<p>⚠️ This endpoint is deprecated and may be removed in future versions of Exivity.</p>\n","urlObject":{"path":["v1","translations",":locale",":filename"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ISO 639-1 two letter code representation of names of language</p>\n","type":"text/plain"},"type":"string","value":"en","key":"locale"},{"type":"string","value":"words","key":"filename"}]}},"response":[],"_postman_id":"8ce8a5d3-cf35-4fe3-ace2-4d02041fdd56"},{"name":"Update translation","event":[{"listen":"test","script":{"id":"0500390f-a1a9-475f-8bf7-48d7ad8252cf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","","pm.test(\"Response contains configuration data\", function () {","    pm.expect(response).to.be.an('object');","    pm.expect(response.data).to.be.an('object');","});","","pm.test(\"Response contains all keys\", function () {","    pm.expect(response.data.hello).to.be.a('string');","    pm.expect(response.data.hello).to.be.eql('Hello World');","    pm.expect(response.data.bye).to.be.a('string');","    pm.expect(response.data.bye).to.be.eql('Goodbye');","    pm.expect(response.data.happy).to.be.eql(2);","});"],"type":"text/javascript"}}],"id":"a836cb2a-8c9e-4b63-8d4c-79f36573993a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"hello\": \"Hello World\",\r\n        \"bye\": \"Goodbye\",\r\n        \"happy\": 2\r\n\t}\r\n}"},"url":"{{base_url}}/v1/translations/:locale/:filename","description":"<p>⚠️ This endpoint is deprecated and may be removed in future versions of Exivity.</p>\n","urlObject":{"path":["v1","translations",":locale",":filename"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ISO 639-1 two letter code representation of names of language</p>\n","type":"text/plain"},"type":"string","value":"en","key":"locale"},{"type":"string","value":"works","key":"filename"}]}},"response":[],"_postman_id":"a836cb2a-8c9e-4b63-8d4c-79f36573993a"}],"id":"8c4e1311-97c8-48de-ae38-487ecb30d0a5","description":"<p>⚠️ The translations feature is deprecated and not used anymore in new releases. The GUI is now available in several languages (beta feature). We may add similar functionality in the future, to allow editing some terminology used in the GUI.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"a299c6f4-104c-4e40-b6b9-004db358458d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0a6d1cae-d3e1-429a-ac47-430fa477eaca","type":"text/javascript","exec":[""]}}],"_postman_id":"8c4e1311-97c8-48de-ae38-487ecb30d0a5"},{"name":"/environments","item":[{"name":"Retrieve a list of environments","event":[{"listen":"test","script":{"id":"67b49a6a-8210-4e29-9b85-481402f67edf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"984ed2d3-35cc-4362-928a-22968dd1754e","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"a4671a36-1981-4ba5-ad14-43b5a4a77fb4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/environments?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","environments"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>variables</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"a4671a36-1981-4ba5-ad14-43b5a4a77fb4"},{"name":"Add a new environment","event":[{"listen":"test","script":{"id":"01f37b5a-a98f-4f9b-b8f5-e3286935b7ad","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('environment');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","        \"name\",","        \"default_flag\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('test');","  pm.expect(response.data.attributes.default_flag).to.eql(true);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"environment_id\", response.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"782266a1-b37d-48e2-a6bb-8fa8e5a87e94","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"0034335f-cb66-4ba6-8dba-45d0e3bbcfe9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"environment\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"test\",\r\n\t\t\t\"default_flag\": true\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/environments","urlObject":{"path":["v1","environments"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"91e26c9e-265a-4ae9-8bd8-94dcb18fb351","name":"Add a new environment","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"environment\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"test\",\r\n\t\t\t\"default_flag\": true\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/environments"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:51:58 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:51:58 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Environment/Environments"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X512aea4af93e782e75d410526f1f3486"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-NiHxxY2MVXCsEDNMRwOnbZmMcJTcTpvy';style-src 'self' 'nonce-NiHxxY2MVXCsEDNMRwOnbZmMcJTcTpvy';font-src 'self' data:"},{"key":"Request-Id","value":"f2adcad8-c028-463c-ae42-32f7d3e6be12"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"environment\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"name\": \"test\",\n            \"default_flag\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/environments/2\"\n        },\n        \"relationships\": {\n            \"variables\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/environments/2/relationships/variables\",\n                    \"related\": \"http://localhost:8012/v1/environments/2/variables\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"0034335f-cb66-4ba6-8dba-45d0e3bbcfe9"},{"name":"Retrieve an environment","event":[{"listen":"test","script":{"id":"e027a60e-90af-4fbe-b93d-b862f0e57e10","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('environment');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"environment_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","        \"name\",","        \"default_flag\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('test');","  pm.expect(response.data.attributes.default_flag).to.eql(true);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"f1b5dc59-701f-4262-bbf7-9f4f533e316b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/environments/{{environment_id}}?include=","urlObject":{"path":["v1","environments","{{environment_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>variables</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"c9a4c2a2-3793-4dbb-86e9-b09099867e31","name":"Retrieve an environment","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/environments/{{environment_id}}?include=","host":["{{base_url}}"],"path":["v1","environments","{{environment_id}}"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `variables`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:52:12 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:52:12 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xb5af9380e916f1d37e37cb832d3c1d4f"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-sHqz5syJn4c26yYIhDZsBYHVFUP9PO7b';style-src 'self' 'nonce-sHqz5syJn4c26yYIhDZsBYHVFUP9PO7b';font-src 'self' data:"},{"key":"Request-Id","value":"2870f925-b210-4c9b-8919-f452b9c6201b"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"environment\",\n        \"id\": \"2\",\n        \"attributes\": {\n            \"name\": \"test\",\n            \"default_flag\": true\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/environments/2\"\n        },\n        \"relationships\": {\n            \"variables\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/environments/2/relationships/variables\",\n                    \"related\": \"http://localhost:8012/v1/environments/2/variables\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"f1b5dc59-701f-4262-bbf7-9f4f533e316b"},{"name":"Update an environment","event":[{"listen":"test","script":{"id":"08b3b90c-34f2-40b1-8b33-8512aeb58810","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('environment');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"environment_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","        \"name\",","        \"default_flag\"","  ]);","  pm.expect(response.data.attributes.name).to.contain('Updated environment name');","  pm.expect(response.data.attributes.default_flag).to.eql(false);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"8e5fbc23-f398-4583-b94c-864f082a2e8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n  \"data\": {\r\n    \"type\": \"environment\",\r\n    \"id\": \"{{environment_id}}\",\r\n    \"attributes\": {\r\n      \"name\": \"Updated environment name - 23\",\r\n      \"default_flag\": false\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/environments/{{environment_id}}","urlObject":{"path":["v1","environments","{{environment_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8e5fbc23-f398-4583-b94c-864f082a2e8e"},{"name":"Delete an environment","event":[{"listen":"test","script":{"id":"170281b6-f19c-4dc0-be12-0494ca748b07","exec":["// Commented out tests, since we're deleting the last environment here,","// which is forbidden since EXVT-3415","","// pm.test(\"Status code is 204\", function () {","//     pm.response.to.have.status(204);","// });","","// console.log('UNSET environment_id');","// pm.environment.unset(\"environment_id\");",""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"929a7fc7-7de3-4246-b539-6f5fdce4ef57","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });"],"type":"text/javascript"}}],"id":"92e654d3-64f6-4ec3-b215-11899e5bbb82","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/environments/:environment_id","description":"<p>You can't delete the default environment.</p>\n<p>On success, a <code>HTTP 204 No Content success status response</code> will be returned.</p>\n","urlObject":{"path":["v1","environments",":environment_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"string","value":"{{environment_id}}","key":"environment_id"}]}},"response":[],"_postman_id":"92e654d3-64f6-4ec3-b215-11899e5bbb82"}],"id":"f37ee782-e53d-4dc7-a94d-454f255e3d00","description":"<p>Exivity documentation: <a href=\"https://docs.exivity.com/data-pipelines/transform/language/environment\">https://docs.exivity.com/data-pipelines/transform/language/environment</a></p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"53486121-304d-4d9f-9c02-fd36ed193b01","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f556d843-8a52-4244-acba-d3764d8bb00c","type":"text/javascript","exec":[""]}}],"_postman_id":"f37ee782-e53d-4dc7-a94d-454f255e3d00"},{"name":"/variables","item":[{"name":"Retrieve a list of variables","event":[{"listen":"test","script":{"id":"67b49a6a-8210-4e29-9b85-481402f67edf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains data\", function () {","    pm.expect(response.data).to.be.an('array');","});"],"type":"text/javascript"}}],"id":"f48e3ac2-363b-4936-9249-25ee5630a1fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/variables?page[limit]&page[offset]&sort&filter[attribute]&include=","urlObject":{"path":["v1","variables"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Limit the amount of results returned</p>\n","type":"text/plain"},"key":"page[limit]","value":null},{"description":{"content":"<p>Return this page of the results</p>\n","type":"text/plain"},"key":"page[offset]","value":null},{"description":{"content":"<p>Sort results by this attribute</p>\n","type":"text/plain"},"key":"sort","value":null},{"description":{"content":"<p>Optionally <a href=\"#working-with-the-api\">filter</a> results by this attribute</p>\n","type":"text/plain"},"key":"filter[attribute]","value":null},{"description":{"content":"<p>Include additional related resources. Possible values: <code>environment</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[{"id":"e6112cf7-ed1d-40fd-b973-5d35a83d8537","name":"Retrieve a list of variables","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/variables?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","variables"],"query":[{"key":"page[limit]","value":null,"description":"Limit the amount of results returned"},{"key":"page[offset]","value":null,"description":"Return this page of the results"},{"key":"sort","value":null,"description":"Sort results by this attribute"},{"key":"filter[attribute]","value":null,"description":"Filter results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `environment`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:50:39 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:50:39 GMT"},{"key":"Connection","value":"close"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"X2a3c4061bdfd1160c940b37513275288"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-o2ChsSJZdytZbrS3r0YgyXSRWBw33Xjf';style-src 'self' 'nonce-o2ChsSJZdytZbrS3r0YgyXSRWBw33Xjf';font-src 'self' data:"},{"key":"Request-Id","value":"a8c95676-b515-4092-a60c-73e6fbf5ec8b"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"type\": \"variable\",\n            \"id\": \"1\",\n            \"attributes\": {\n                \"name\": \"USERNAME\",\n                \"value\": \"admin\",\n                \"encrypted\": false\n            },\n            \"links\": {\n                \"self\": \"http://localhost:8012/v1/variables/1\"\n            },\n            \"relationships\": {\n                \"environment\": {\n                    \"links\": {\n                        \"self\": \"http://localhost:8012/v1/variables/1/relationships/environment\",\n                        \"related\": \"http://localhost:8012/v1/variables/1/environment\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"count\": 1,\n            \"per_page\": 15,\n            \"current_page\": 1,\n            \"total_pages\": 1\n        }\n    },\n    \"links\": {\n        \"self\": \"http://localhost:8012/v1/variables?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"first\": \"http://localhost:8012/v1/variables?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\",\n        \"last\": \"http://localhost:8012/v1/variables?page%5Blimit%5D=&sort=&filter%5Battribute%5D=&include=&page%5Boffset%5D=1\"\n    }\n}"}],"_postman_id":"f48e3ac2-363b-4936-9249-25ee5630a1fd"},{"name":"Add a new variable","event":[{"listen":"test","script":{"id":"01f37b5a-a98f-4f9b-b8f5-e3286935b7ad","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('variable');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","        \"name\",","        \"value\",","        \"encrypted\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('USERNAME');","  pm.expect(response.data.attributes.value).to.eql('admin');","  pm.expect(response.data.attributes.encrypted).to.eql(false);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});","","pm.environment.set(\"variable_id\", response.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"0ec8089a-974b-4b6f-86c9-e70399b28545","exec":["const api = eval(pm.globals.get('exivity'))();\r","\r","api.start()\r","    .then(api.requireToken)\r","    .then(api.requireEnvironment)\r","    .then(api.ready)\r","    .catch(function(err) {\r","        console.log(err);\r","    });\r",""],"type":"text/javascript"}}],"id":"abfae90a-2411-42f7-acea-eb9b0a3e169c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"variable\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"USERNAME\",\r\n\t\t\t\"value\": \"admin\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n        \t\"environment\": {\r\n        \t\t\"data\": {\r\n        \t\t\t\"type\": \"environment\",\r\n        \t\t\t\"id\": \"{{environment_id}}\"\r\n        \t\t}\r\n        \t}\r\n        }\r\n\t}\r\n}"},"url":"{{base_url}}/v1/variables","urlObject":{"path":["v1","variables"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"33e1cd49-b252-4235-a0f5-2c0bfc24057b","name":"Add a new variable","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/vnd.api+json"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"variable\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"USERNAME\",\r\n\t\t\t\"value\": \"admin\"\r\n\t\t},\r\n\t\t\"relationships\": {\r\n        \t\"environment\": {\r\n        \t\t\"data\": {\r\n        \t\t\t\"type\": \"environment\",\r\n        \t\t\t\"id\": \"{{environment_id}}\"\r\n        \t\t}\r\n        \t}\r\n        }\r\n\t}\r\n}"},"url":"{{base_url}}/v1/variables"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8012"},{"key":"Date","value":"Fri, 04 Feb 2022 10:50:23 GMT"},{"key":"Date","value":"Fri, 04 Feb 2022 10:50:23 GMT"},{"key":"Connection","value":"close"},{"key":"Location","value":"http://localhost:8012/v1/Variable/Variables"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"X-Clockwork-Id","value":"Xcb2e8c3491365fe0e87a4d79201c3578"},{"key":"X-Clockwork-Version","value":"1"},{"key":"X-Clockwork-Path","value":"_debugbar/clockwork/"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Feature-Policy","value":"autoplay 'none'; camera 'none'"},{"key":"Referrer-Policy","value":"strict-origin"},{"key":"Content-Security-Policy","value":"base-uri 'self';connect-src 'self';default-src 'self';form-action 'self';img-src 'self' data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-pUFBkahh6JTDf4qIV8Qdz9w25WaUG7tN';style-src 'self' 'nonce-pUFBkahh6JTDf4qIV8Qdz9w25WaUG7tN';font-src 'self' data:"},{"key":"Request-Id","value":"25f670be-f4a9-49c8-a00d-aee3edd695f6"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"variable\",\n        \"id\": \"1\",\n        \"attributes\": {\n            \"name\": \"USERNAME\",\n            \"value\": \"admin\",\n            \"encrypted\": false\n        },\n        \"links\": {\n            \"self\": \"http://localhost:8012/v1/variables/1\"\n        },\n        \"relationships\": {\n            \"environment\": {\n                \"links\": {\n                    \"self\": \"http://localhost:8012/v1/variables/1/relationships/environment\",\n                    \"related\": \"http://localhost:8012/v1/variables/1/environment\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"abfae90a-2411-42f7-acea-eb9b0a3e169c"},{"name":"Retrieve a variable","event":[{"listen":"test","script":{"id":"e027a60e-90af-4fbe-b93d-b862f0e57e10","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('variable');","    pm.expect(response.data.id).to.eql(pm.environment.get(\"variable_id\").toString());","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","        \"name\",","        \"value\",","        \"encrypted\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('USERNAME');","  pm.expect(response.data.attributes.value).to.eql('admin');","  pm.expect(response.data.attributes.encrypted).to.eql(false);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});"],"type":"text/javascript"}}],"id":"e3bcdc19-4d37-4133-83a4-4b50321378fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/variables/{{variable_id}}?include=","urlObject":{"path":["v1","variables","{{variable_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Include additional related resources. Possible values: <code>variables</code>.</p>\n","type":"text/plain"},"key":"include","value":""}],"variable":[]}},"response":[],"_postman_id":"e3bcdc19-4d37-4133-83a4-4b50321378fc"},{"name":"Update a variable","event":[{"listen":"test","script":{"id":"08b3b90c-34f2-40b1-8b33-8512aeb58810","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","const response = pm.response.json();","console.log(response);","","pm.test(\"Response contains correct data\", function () {","    pm.expect(response.data).to.be.an('object');","    pm.expect(response.data.type).to.eql('variable');","    pm.expect(response.data.id).to.not.be.undefined;","    pm.expect(response.data.attributes).to.be.an('object');","    pm.expect(response.data.attributes).to.have.keys([","        \"name\",","        \"value\",","        \"encrypted\"","  ]);","  pm.expect(response.data.attributes.name).to.eql('USERNAME');","  pm.expect(response.data.attributes.value).to.eql('alice');","  pm.expect(response.data.attributes.encrypted).to.eql(false);","});","","pm.test(\"Response contains data.links\", function () {","    pm.expect(response.data.links).to.be.an('object');","});",""],"type":"text/javascript"}}],"id":"510e823c-d525-4b7d-a49a-310b73a73340","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"},{"key":"Accept","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\r\n\t\"data\": {\r\n\t\t\"type\": \"variable\",\r\n\t    \"id\": \"{{variable_id}}\",\r\n\t\t\"attributes\": {\r\n\t\t\t\"name\": \"USERNAME\",\r\n\t\t\t\"value\": \"alice\",\r\n\t\t\t\"encrypted\": false\r\n\t\t}\r\n\t}\r\n}"},"url":"{{base_url}}/v1/variables/{{variable_id}}","urlObject":{"path":["v1","variables","{{variable_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"510e823c-d525-4b7d-a49a-310b73a73340"},{"name":"Delete a variable","event":[{"listen":"test","script":{"id":"170281b6-f19c-4dc0-be12-0494ca748b07","exec":["pm.test(\"Status code is 204\", function () {","    pm.response.to.have.status(204);","});","","console.log('UNSET variable_id');","pm.environment.unset(\"variable_id\");"],"type":"text/javascript"}}],"id":"34d9a130-99f4-46b3-9072-6bbf3d5a44cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/variables/{{variable_id}}","urlObject":{"path":["v1","variables","{{variable_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"34d9a130-99f4-46b3-9072-6bbf3d5a44cb"}],"id":"74fec5b3-e74a-4ce0-9412-26b2d04bec17","description":"<p><em>Global Variables</em> enable users to configure Exivity system-wide variables which can be used in any Extractor or Transformer script.</p>\n<p>Exivity documentation: <a href=\"https://docs.exivity.com/architecture%20concepts/glossary/#environment\">https://docs.exivity.com/architecture%20concepts/glossary/#environment</a></p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"53486121-304d-4d9f-9c02-fd36ed193b01","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f556d843-8a52-4244-acba-d3764d8bb00c","type":"text/javascript","exec":[""]}}],"_postman_id":"74fec5b3-e74a-4ce0-9412-26b2d04bec17"},{"name":"/failed-jobs","item":[{"name":"Get all failed jobs","id":"3b18876f-55f1-430e-97d3-2343b306b80d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{base_url}}/v1/failed-jobs","urlObject":{"path":["v1","failed-jobs"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3b18876f-55f1-430e-97d3-2343b306b80d"}],"id":"d18fd391-6b33-4905-9ed5-d75d155892bc","auth":{"type":"noauth","isInherited":false},"_postman_id":"d18fd391-6b33-4905-9ed5-d75d155892bc","description":""}],"id":"973e5c9a-8d8b-4f08-bb2a-d554819bd23e","auth":{"type":"noauth","isInherited":false},"_postman_id":"973e5c9a-8d8b-4f08-bb2a-d554819bd23e","description":""}],"event":[{"listen":"prerequest","script":{"id":"3e5c01f8-b272-486a-ad6c-8c4840a95109","type":"text/javascript","exec":["console.log('');","console.log('********************* ' + pm.info.requestName + '(v1) *********************');","","const helpers = () => {","","    const api = {};","","    // Generic helpers","","    let interval = 100; // check every x ms","    let max = 60000; // 1 minute","","    let started = false;","    let finished = false;","    let elapsed = 0;","","    function wait() {","        if (!finished && elapsed <= max) {","            setTimeout(wait, interval);","            elapsed += interval;","        }","    }","","    function promisify(fn) {","        return function (arg) {","            if (!started) {","                started = true;","                wait();","            }","            return new Promise(function (accept, reject) {","                fn(arg, function (err, res) {","                    if (err) {","                        reject(err);","                    } else {","                        accept(res);","                    }","                });","            });","","        };","    }","","    api.asyncRequest = promisify(pm.sendRequest);","","    api.start = function () {","        console.log('---- Pre-request Script start ----');","        wait();","        return new Promise(function (accept, reject) {","            accept();","        });","    };","","    api.ready = function () {","        finished = true;","        console.log('---- Pre-request Script end ----');","    };","","    // Domain helpers","    api.requireToken = function () {","        console.log('requireToken()');","","        // Check if Token ID is set","        if (pm.environment.get(\"token\") && pm.environment.get(\"token\") !== 'undefined') {","            console.log('GET token: ' + pm.environment.get(\"token\"));","            return pm.environment.get(\"token\");","        }","","        // Check if username & password are set","        if (!pm.environment.get(\"username\") || !pm.environment.get(\"password\")) {","            throw new Error('Username or password not set');","        }","","        var details = {","            'username': encodeURIComponent(pm.environment.get(\"username\")),","            'password': encodeURIComponent(pm.environment.get(\"password\")),","        };","        var formBody = [];","        for (var property in details) {","            var encodedKey = encodeURIComponent(property);","            var encodedValue = encodeURIComponent(details[property]);","            formBody.push(encodedKey + \"=\" + encodedValue);","        }","","        // Generate token","        return api.asyncRequest({","            // Create a new token","            url: pm.variables.get(\"base_url\") + '/v1/auth/token',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/x-www-form-urlencoded'","            },","            body: formBody.join(\"&\")","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 200)) {","                throw new Error(response);","            }","            json = response.json();","","            pm.environment.set(\"token\", json.token);","            console.log('SET token: ' + pm.environment.get(\"token\"));","            pm.environment.set(\"user_id\", json.user.id);","            console.log('SET user_id: ' + pm.environment.get(\"user_id\"));","            return pm.environment.get(\"token\");","        });","    };","","    api.requireReport = function () {","        console.log('requireReport()');","","        // Check if Report ID is set","        if (pm.environment.get(\"report_id\") && pm.environment.get(\"report_id\") !== 'undefined') {","            console.log('GET report_id: ' + pm.environment.get(\"report_id\"));","            return pm.environment.get(\"report_id\");","        }","","        // Check Dset ID is set","        if (!pm.environment.get(\"dset_id\")) {","            throw new Error('Dset ID not set - need to create report');","        }","","        // Not set - create report","        return api.asyncRequest({","            // Create a new report","            url: pm.variables.get(\"base_url\") + '/v1/reports',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"report\",","                        \"attributes\": {","                            \"name\": \"Test report - \" + Math.floor(Math.random() * 1000),","                            \"dset\": pm.variables.get(\"dset_id\"),","                            \"lvl1_key_col\": \"Country\",","                            \"lvl1_name_col\": \"Country\",","                            \"lvl1_label\": \"Country\",","                            \"lvl2_key_col\": \"Reseller\",","                            \"lvl2_name_col\": \"Reseller\",","                            \"lvl3_label\": \"Reseller\"","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"report_id\", json.data.id);","            console.log('SET report_id: ' + pm.environment.get(\"report_id\"));","            return pm.environment.get(\"report_id\");","        });","    };","","    api.requireAccount = function (reportId) {","        console.log('reqireAccount()');","","        // Check if Account ID is set","        if (pm.environment.get(\"account_id\") && pm.environment.get(\"account_id\") !== 'undefined') {","            console.log('GET account_id: ' + pm.environment.get(\"account_id\"));","            return pm.environment.get(\"account_id\");","        }","","        // Not set - create account","","        // Check report ID","        if (!pm.environment.get(\"report_id\")) {","            throw new Error('Report ID not set - need to create Account');","        }","","        return api.asyncRequest({","            // Create a new account","            url: pm.variables.get(\"base_url\") + '/v1/accounts',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"account\",","                        \"attributes\": {","                            \"name\": \"Test account - \" + Math.floor(Math.random() * 1000),","                        },","                        \"relationships\": {","                            \"report\": {","                                \"data\": {","                                    \"type\": \"report\",","                                    \"id\": pm.variables.get(\"report_id\")","                                }","                            }","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"account_id\", json.data.id);","            console.log('SET account_id: ' + pm.environment.get(\"account_id\"));","            return pm.environment.get(\"account_id\");","        });","    };","","    api.requireBudget = function () {","        console.log('requireBudget()');","","        // Check if budget ID is set","        if (pm.environment.get(\"budget_id\") && pm.environment.get(\"budget_id\") !== 'undefined') {","            console.log('SET budget_id: ' + pm.environment.get(\"budget_id\"));","            return pm.environment.get(\"budget_id\");","        }","","        return api.asyncRequest({","            // Create a new budget","            url: pm.variables.get(\"base_url\") + '/v1/budgets',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"budget\",","                        \"attributes\": {","                            \"interval\": \"year\",","                            \"description\": \"Test Budget - \" + Math.floor(Math.random() * 1000),","                            \"metric\": \"charge\"","                        },","                        \"relationships\": {","                            \"report\": {","                                \"data\": {","                                    \"type\": \"report\",","                                    \"id\": pm.variables.get(\"report_id\")","                                }","                            }","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"budget_id\", json.data.id);","            console.log('SET budget_id: ' + pm.environment.get(\"budget_id\"));","            return pm.environment.get(\"budget_id\");","        });","    };","","    api.requireBudgetRevision = function (budgetId) {","        console.log('requireBudgetRevision()');","","        // Check if budget ID is set","        if (pm.environment.get(\"budgetrevision_id\") && pm.environment.get(\"budgetrevision_id\") !== 'undefined') {","            console.log('SET budgetrevision_id: ' + pm.environment.get(\"budgetrevision_id\"));","            return pm.environment.get(\"budgetrevision_id\");","        }","","        return api.asyncRequest({","            // Create a new budget revision","            url: pm.variables.get(\"base_url\") + '/v1/budgetrevisions',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"budgetrevision\",","                        \"attributes\": {","                            \"effective_from\": \"20190606\"","                        },","                        \"relationships\": {","                            \"budget\": {","                                \"data\": {","                                    \"type\": \"budget\",","                                    \"id\": pm.variables.get(\"budget_id\")","                                }","                            }","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"budgetrevision_id\", json.data.id);","            console.log('SET budgetrevision_id: ' + pm.environment.get(\"budgetrevision_id\"));","            return pm.environment.get(\"budgetrevision_id\");","        });","    };","","    api.requireService = function () {","        console.log('requireService()');","","        // Check if service ID is set","        if (pm.environment.get(\"service_id\") && pm.environment.get(\"service_id\") !== 'undefined') {","            console.log('SET service_id: ' + pm.environment.get(\"service_id\"));","            return pm.environment.get(\"service_id\");","        }","","        // Check Dset ID is set","        if (!pm.environment.get(\"dset_id\")) {","            throw new Error('Dset ID not set - need to create service');","        }","","        return api.asyncRequest({","            // Create a new service","            url: pm.variables.get(\"base_url\") + '/v1/services',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"service\",","                        \"attributes\": {","                            \"key\": \"Test Service - \" + Math.floor(Math.random() * 1000),","                            \"description\": \"test service\",","                            \"unit_label\": \"hours\",","                            \"dset\": pm.variables.get(\"dset_id\"),","                            \"type\": \"service_name_in_header\",","                            \"usage_col\": \"unique_key\",","                            \"consumption_col\": \"quantity\",","                            \"instance_col\": \"hostname\",","                            \"interval\": \"month\",","                            \"charge_type\": \"manual_per_unit\",","                            \"cogs_type\": \"none\",","                            \"proration_type\": \"full\",","                            \"charge_model\": \"peak\"","                        },","                        \"relationships\": {","                            \"servicecategory\": {","                                \"data\": {","                                    \"type\": \"servicecategory\",","                                    \"id\": pm.variables.get(\"servicecategory_id\")","                                }","                            }","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"service_id\", json.data.id);","            console.log('SET service_id: ' + pm.environment.get(\"service_id\"));","            return pm.environment.get(\"service_id\");","        });","    };","","    api.requireServiceCategory = function () {","        console.log('requireServiceCategory()');","","        // Check if service category ID is set","        if (pm.environment.get(\"servicecategory_id\") && pm.environment.get(\"servicecategory_id\") !== 'undefined') {","            console.log('SET servicecategory_id: ' + pm.environment.get(\"servicecategory_id\"));","            return pm.environment.get(\"servicecategory_id\");","        }","","        return api.asyncRequest({","            // Create a new service category","            url: pm.variables.get(\"base_url\") + '/v1/servicecategories',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"servicecategory\",","                        \"attributes\": {","                            \"name\": \"Test Service Category - \" + Math.floor(Math.random() * 1000),","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"servicecategory_id\", json.data.id);","            console.log('SET servicecategory_id: ' + pm.environment.get(\"servicecategory_id\"));","            return pm.environment.get(\"servicecategory_id\");","        });","    };","","    api.requireRate = function () {","        console.log('requireRate()');","","        // Check if rate ID is set","        if (pm.environment.get(\"rate_id\") && pm.environment.get(\"rate_id\") !== 'undefined') {","            console.log('SET rate_id: ' + pm.environment.get(\"rate_id\"));","            return pm.environment.get(\"rate_id\");","        }","","        // Check service ID","        if (!pm.environment.get(\"service_id\")) {","            throw new Error('Service ID not set - need to create rate');","        }","","        return api.asyncRequest({","            // Create a new rate","            url: pm.variables.get(\"base_url\") + '/v1/rates',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"rate\",","                        \"attributes\": {","                            \"rate\": \"1.0\",","                            \"rate_col\": \"rate_col\",","                            \"fixed\": \"2.0\",","                            \"fixed_col\": \"fixed_col\",","                            \"cogs_rate\": \"3.0\",","                            \"cogs_rate_col\": \"cogs_rate_col\",","                            \"cogs_fixed\": \"4.0\",","                            \"cogs_fixed_col\": \"cogs_fixed_col\",","                            \"effective_date\": \"2017-08-27\",","                            \"tier_aggregation_level\": \"1\"","                        },","                        \"relationships\": {","                            \"service\": {","                                \"data\": {","                                    \"type\": \"service\",","                                    \"id\": pm.variables.get(\"service_id\")","                                }","                            }","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"rate_id\", json.data.id);","            console.log('SET rate_id: ' + pm.environment.get(\"rate_id\"));","            return pm.environment.get(\"rate_id\");","        });","    };","","    api.requireWorkflow = function () {","        console.log('requireWorkflow()');","","        // Check if ID is already set","        if (pm.environment.get(\"workflow_id\") && pm.environment.get(\"workflow_id\") !== 'undefined') {","            console.log('GET workflow_id: ' + pm.environment.get(\"workflow_id\"));","            return pm.environment.get(\"workflow_id\");","        }","","        return api.asyncRequest({","            // Create a new budget","            url: pm.variables.get(\"base_url\") + '/v1/workflows',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"workflow\",","                        \"attributes\": {","                            \"name\": \"Test workflow\" + Math.floor(Math.random() * 1000),","                            \"description\": \"This is test task\",","                            \"hidden\": false","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"workflow_id\", json.data.id);","            console.log('SET workflow_id: ' + pm.environment.get(\"workflow_id\"));","            return pm.environment.get(\"workflow_id\");","        });","    };","","    api.requireWorkflowExecuteStep = function () {","        console.log('requireWorkflowExecuteStep()');","","        // Check if ID is already set","        if (pm.environment.get(\"execute_workflowstep_id\") && pm.environment.get(\"execute_workflowstep_id\") !== 'undefined') {","            console.log('GET execute_workflowstep_id: ' + pm.environment.get(\"execute_workflowstep_id\"));","            return pm.environment.get(\"execute_workflowstep_id\");","        }","","        return api.asyncRequest({","            // Create a new budget","            url: pm.variables.get(\"base_url\") + '/v1/workflowsteps',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"workflowstep\",","                        \"attributes\": {","                            \"type\": \"execute\",","                            \"timeout\": 600,","                            \"options\": {","                                \"command\": \"echo \\\"testing\\\"\"","                            }","                        },","                        \"relationships\": {","                            \"workflow\": {","                                \"data\": {","                                    \"type\": \"workflow\",","                                    \"id\": pm.variables.get(\"workflow_id\")","                                }","                            }","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"execute_workflowstep_id\", json.data.id);","            console.log('SET execute_workflowstep_id: ' + pm.environment.get(\"execute_workflowstep_id\"));","            return pm.environment.get(\"execute_workflowstep_id\");","        });","    };","","    api.runWorkflow = function () {","        console.log('runWorkflow()');","","        // Check Workflow ID is set","        if (!pm.environment.get(\"workflow_id\")) {","            throw new Error('Can\\'t run workflow - Workflow ID not set');","        }","","        return api.asyncRequest({","            url: pm.variables.get(\"base_url\") + '/v1/workflows/' + pm.environment.get(\"workflow_id\") + '/run',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 200)) {","                throw new Error(response);","            }","        });","    };","","    api.requireEnvironment = function () {","        console.log('requireEnvironment()');","","        // Check if service category ID is set","        if (pm.environment.get(\"environment_id\") && pm.environment.get(\"environment_id\") !== 'undefined') {","            console.log('SET environment_id: ' + pm.environment.get(\"environment_id\"));","            return pm.environment.get(\"environment_id\");","        }","","        return api.asyncRequest({","            // Create a new service category","            url: pm.variables.get(\"base_url\") + '/v1/environments',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"environment\",","                        \"attributes\": {","                            \"name\": \"Test Environment - \" + Math.floor(Math.random() * 1000),","                            \"default_flag\": false","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"environment_id\", json.data.id);","            console.log('SET environment_id: ' + pm.environment.get(\"environment_id\"));","            return pm.environment.get(\"environment_id\");","        });","    };","","    api.requireMetadataDefinition = function () {","        console.log('requireMetadataDefinition()');","","        // Check if metadatadefinition ID is set","        if (pm.environment.get(\"metadatadefinition_id\") && pm.environment.get(\"metadatadefinition_id\") !== 'undefined') {","            console.log('SET metadatadefinition_id: ' + pm.environment.get(\"metadatadefinition_id\"));","            return pm.environment.get(\"metadatadefinition_id\");","        }","","        return api.asyncRequest({","            // Create a new metadata definition","            url: pm.variables.get(\"base_url\") + '/v1/metadatadefinitions',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"metadatadefinition\",","                        \"attributes\": {","                            \"name\": \"Test definition - \" + Math.floor(Math.random() * 1000),","                            \"fields\": [","                                {","                                    \"name\": \"country\",","                                    \"type\": \"string\"","                                }","                            ]","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"metadatadefinition_id\", json.data.id);","            console.log('SET metadatadefinition_id: ' + pm.environment.get(\"metadatadefinition_id\"));","            return pm.environment.get(\"metadatadefinition_id\");","        });","    };","","    api.requireUsergroup = function () {","        console.log('requireUsergroup()');","","        // Check if usergroup ID is set","        if (pm.environment.get(\"usergroup_id\") && pm.environment.get(\"usergroup_id\") !== 'undefined') {","            console.log('SET usergroup_id: ' + pm.environment.get(\"usergroup_id\"));","            return pm.environment.get(\"usergroup_id\");","        }","","        return api.asyncRequest({","            // Create a new usergroup","            url: pm.variables.get(\"base_url\") + '/v1/usergroups',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"data\": {","                        \"type\": \"usergroup\",","                        \"attributes\": {","                            \"name\": \"Usergroup - \" + Math.floor(Math.random() * 1000),","                            \"permissions\": [\"manage_users\"]","                        }","                    }","                })","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 201)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"usergroup_id\", json.data.id);","            console.log('SET usergroup_id: ' + pm.environment.get(\"usergroup_id\"));","            return pm.environment.get(\"usergroup_id\");","        });","    };","","    api.requireDset = function () {","        console.log('requireDset()');","","        // Check if usergroup ID is set","        if (pm.environment.get(\"dset_id\") && pm.environment.get(\"dset_id\") !== 'undefined') {","            console.log('SET dset_id: ' + pm.environment.get(\"dset_id\"));","            return pm.environment.get(\"dset_id\");","        }","","        return api.asyncRequest({","            // Retrieve a list of datasets and use first one","            url: pm.variables.get(\"base_url\") + '/v1/dsets',","            method: 'GET',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            }","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 200)) {","                throw new Error(response);","            }","            json = response.json();","            if (!pm.expect(json.data).to.not.be.empty) {","                throw new Error(response);","            }","            pm.environment.set(\"dset_id\", json.data[0].id);","            console.log('SET dset_id: ' + pm.environment.get(\"dset_id\"));","            return pm.environment.get(\"dset_id\");","        });","    };","","    api.requireExtractor = function () {","        console.log('requireExtractor()');","","        // Check if Report ID is set","        if (pm.environment.get(\"extractor_name\") && pm.environment.get(\"extractor_name\") !== 'undefined') {","            console.log('GET extractor_name: ' + pm.environment.get(\"extractor_name\"));","            return pm.environment.get(\"extractor_name\");","        }","","","        // Create extractor","        return api.asyncRequest({","            // Create a new extractor","            url: pm.variables.get(\"base_url\") + '/v1/extractors',","            method: 'POST',","            header: {","                'Accept': 'application/json',","                'Content-Type': 'application/json',","                'Authorization': 'Bearer ' + pm.variables.get(\"token\")","            },","            body: {","                mode: 'raw',","                raw: JSON.stringify({","                    \"name\": \"Test extractor - \" + Math.floor(Math.random() * 1000),","                    \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypt var key3 = 0\"","                })","            }","","        }).then(function (response) {","            if (!pm.expect(response).to.have.property('code', 200)) {","                throw new Error(response);","            }","            json = response.json();","            pm.environment.set(\"extractor_name\", json.name);","            console.log('SET extractor_name: ' + pm.environment.get(\"extractor_name\"));","            return pm.environment.get(\"extractor_name\");","        });","    };","","    // Export everything","    return api;","};","","pm.globals.set('exivity', helpers.toString());"]}},{"listen":"test","script":{"id":"6d5a6a6f-e18b-4209-ba57-7c0fe6e7bd39","type":"text/javascript","exec":[""]}}],"variable":[{"key":"component","value":"use"}]}