{"info":{"_postman_id":"99c07ed7-5bf3-9f5a-b17f-e37f50958266","name":"Exivity API v1","description":"<img src=\"https://content.pstmn.io/eeb7303a-367d-4f85-a90c-642ea4d12292/RXhpdml0eUFQSXYxTG9nby5wbmc=\">\n\nThis 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 [documentation](https://docs.exivity.com/).\n\nDownload latest [Postman collection](https://raw.githubusercontent.com/exivity/postman-collections/master/proximity/v1.json) from our [GitHub repository](https://github.com/exivity/postman-collections).\n\n# Overview\n\n1. This API uses principles and constraints of [REST APIs](https://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints).\n2. You need a valid API token for requests.\n3. The API is rate limited.\n4. Most resource endpoints listen to and responds with data structures as defined by the [JSON:API standard](https://jsonapi.org/). You'll recognise these endpoints when the documentation lists the following headers:\n    \n\n```\nContent-Type: application/vnd.api+json\nAccept: application/vnd.api+json\n\n ```\n\n# Authentication\n\nThe default method of authentication against the API is done through a stateless [JWT token](https://jwt.io/).\n\nIt is also possible to authenticate the API via LDAP or SAML, if your administrator has set up access to either of these systems.\n\n#### **How to use the token**\n\nThe default method of authentication against the API is done through a stateless [JWT token](https://jwt.io/), sent along as an Authentication header. To obtain a token, a request to the API endpoint `/v1/auth/token` should be made with the user credentials.\n\nOnce a token has been generated, please include it in the headers of other requests to allow authorization.\n\n_Example:_\n\n```\nAuthorization: Bearer [token]\n\n ```\n\nThe JWT token will expire after _4 hours_ for security reasons. This value is configurable. Please see [/configuration](#dcc7d52d-c5f5-35bd-a28b-182dbba9eec3) or [https://docs.exivity.com/architecture%20concepts/glossary/#authentication-token](https://docs.exivity.com/architecture%20concepts/glossary/#authentication-token) for more information.\n\n# Working with the API\n\n## Placeholders\n\nDifferent variables have double curly brackets around them (`{{`, `}}`). These used for placeholders in this documentation. When working with the API, these placeholders should be replaced with real values. Examples include:\n\n`{{base_url}}` - replace this with your API's url\n\n`{{workflow_id}}`, `{{report_id}}`, `{{account_id}}`, etc - these are placeholders for a specific ID for an object.\n\n## Query String Parameters\n\nSome requests using the JSON:API format accept additional query string parameters.\n\n### Filtering\n\nTo filter results, use the `filter[attribute]` query string parameter.\n\nThe following formats are supported for filtering results:\n\n| Token | Description | Example |\n| --- | --- | --- |\n| `^` | Field starts with | `filter[name]=^John` |\n| `$` | Field ends with | `filter[name]=$Smith` |\n| `~` | Field contains | `filter[favorite_cheese]=~cheddar` |\n| `<` | Field is less than | `filter[lifetime_value]=<50` |\n| `>` | Field is greater than | `filter[lifetime_value]=>50` |\n| `>=` | Field is greater than or equals | `filter[lifetime_value]=>=50` |\n| `<=` | Field is less than or equals | `filter[lifetime_value]=<=50` |\n| `=` | Field is equal to | `filter[username]==Specific Username` |\n| `!=` | Field is not equal to | `filter[username]=!=common username` |\n| `[...]` | Field is one or more of | `filter[id]=[1,5,10]` |\n| `![...]` | Field is not one of | `filter[id]=![1,5,10]` |\n| `{...,...}` | Between exclusive (e.g. 2 up to 99) | `filter[id]={1,100}` |\n| `={...,...}` | Between inclusive (e.g. 1 up to 100) | `filter[id]=={1,100}` |\n| `NULL` | Field is null | `filter[address]=NULL` |\n| `NOT_NULL` | Field is not null | `filter[email]=NOT_NULL` |\n\n_Example - get accounts that start with W:_\n\n```\nGET /accounts?filter[name]=^W\n\n ```\n\n#### Multiple filters\n\nThe filter parameter can occur multiple times in a request to filter by multiple fields.\n\n_Example - get accounts that start with W and level is set to one:_\n\n```\nGET /accounts?filter[name]=^W&filter[level]==1\n\n ```\n\n#### Related entities filters\n\nA filter can also use related entities (which don't have to be included in the request with the `include` parameter).\n\n_Example - get users with MANAGE_USERS permission, and an email address ending with \"example.com\":_\n\n```\nGET /user?filter[usergroup.permissions]=~MANAGE_USERS&filter[email_address]=$example.com\n\n ```\n\n### Pagination\n\nWhen 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 `page[limit]` and `page[offset]` query string parameters.\n\n_Example:_\n\n```\nGET /user?page[limit]=50&page[offset]=2\n\n ```\n\nWhen the page limit is set to `-1`, all results are returned.\n\nThe `links` element in the JSON response contains references to URLs which can be used to navigate the resultset.\n\nThe `meta` element in the JSON response contains a reference to the total number of items in the resultset.\n\n### Sorting\n\nIt is possible to sort results by using the `sort` query string parameter. A descending sort order can be requested by prefixing a hyphen (U+002D).\n\n_Example:_\n\n```\nGET /user?sort=-username\n\n ```\n\n### Include Related Resources\n\nInclusion of related resources in the response can be requested with the `include` 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.\n\n_Examples:_\n\n```\nGET /user?include=usergroup,accounts\nGET /user/[id]?include=usergroup,accounts\n\n ```\n\n### Fetching relationships\n\nIt is also possible to fetch relationship data to a single resource using a separate endpoint. Relationships data on resources can be [queried](http://jsonapi.org/format/#fetching-relationships) and [modified](http://jsonapi.org/format/#crud-updating-relationships) by using the `/[resource]/[id]/relationships/[relation]` endpoint structure.\n\n```\nGET /user/[id]/usergroup\n\n ```\n\n# Error responses\n\nErrors are returned as a JSON object, following the [JSON:API error standard](https://jsonapi.org/format/#errors). We use HTTP error responses in the status field, to indicate whether the request was a success (`2xx`) or a failure(`4xx`, `5xx`).\n\n_Example:_\n\n``` json\n{\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 ```\n\nPossible response codes:\n\n| Code | Description |\n| --- | --- |\n| `400 Bad request` | Something in the request is missing or invalid |\n| `401 Unauthorized` | JWT token is missing or invalid |\n| `403 Forbidden` | Missing required permission for this operation |\n| `404 Not found` | Entity can't be found |\n| `409 Conflict` | Entity type or id doesn't match endpoint |\n| `422 Unprocessable Entity` | Parameters validation error |\n| `503 Service Unavailable` | Rate lime exceeded |\n\n## Authentication error response\n\nIf an authorization token is missing, expired or malformed, an error response will be returned. These errors will always have a `401 Unauthorised` status.\n\n_Example:_\n\n``` json\n{\n    \"errors\": [\n        {\n            \"status\": 401,\n            \"title\": \"AuthException\",\n            \"detail\": \"Invalid token provided, please login again.\"\n        }\n    ]\n}\n\n ```\n\n## Authorization error response\n\nSome endpoints require a different set of permissions than others. If insufficient permissions are granted to the authenticated user, a `403 Forbidden` response is returned.\n\n# Rate limits\n\nAll API requests are rate limited to avoid overloading the server.  \nThe 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 `503 Service Unavailable` response.\n\nRequests containing a user password in the payload are even further rate limited to mitigate brute-force attacks in user credentials.\n\n# Terms of service\n\nYou can find the terms of service [on our website](https://www.exivity.com/terms).\n\n# API Reference","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json"},"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"},"method":"GET","header":[],"url":"{{base_url}}","description":"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.\n\nIt is also possible to ask for a JSON response, using the `Accept: application/json` header.\n\nThis will return a 204 response if all is good, or a 500 error with a JSON error message if something is not correct.\n\nIn debug mode, this will also contain a `meta` field, listing the area where the problem is."},"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"},"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"},{"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"},"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","description":"Generate a new JWT authentication token."},"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":{"token":"{{token}}"}},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{base_url}}/v1/auth/token"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/auth/token","description":"On success, a `HTTP 204 No Content` success status response will be returned.\n\n⚠️ Available since v3.0.0"},"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":"Exivity documentation: [https://docs.exivity.com/Security/Authentication/Token](https://docs.exivity.com/Security/Authentication/Token)\n\n#### **Token object**\n\n| **name** | **type** | **description** |\n| --- | --- | --- |\n| token | _string_ | JWT token |\n| permissions | _array_ | What permissions the user has |\n| user | _object_ | See user object for more information. |","auth":{"type":"noauth"},"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"},"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/v1/auth/saml/login?return_url=","host":["{{base_url}}"],"path":["v1","auth","saml","login"],"query":[{"key":"return_url","value":""}]},"description":"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."},"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":{"raw":"{{base_url}}/v1/auth/saml/logout?return_url","host":["{{base_url}}"],"path":["v1","auth","saml","logout"],"query":[{"key":"return_url","value":null,"description":"Glass URL to return to after logging out. If not specified, inferred from Referer header."}]},"description":"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."},"response":[],"_postman_id":"1675fe0c-bc8e-49e4-9bba-29e3d701db78"},{"name":"Entity ID endpoint","id":"f197a6ea-5e9e-416e-a072-1a5a282341ca","request":{"auth":{"type":"noauth"},"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/auth/saml/metadata","description":"Metadata about the SAML Service Provider instance will be published at this URL."},"response":[],"_postman_id":"f197a6ea-5e9e-416e-a072-1a5a282341ca"},{"name":"ACS endpoint","id":"c8fac917-2339-4e12-bc12-33d6de4634c8","request":{"auth":{"type":"noauth"},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/auth/saml/acs","description":"Assertion Consumer Service. If the received response from the SAML Identity Provider is valid, redirects to the Exivity dashboard."},"response":[],"_postman_id":"c8fac917-2339-4e12-bc12-33d6de4634c8"},{"name":"SLS endpoint","id":"e2242d8d-f721-4a1a-9145-6828024f3db6","request":{"auth":{"type":"noauth"},"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/auth/saml/sls","description":"Single Logout Service. If the received response from the SAML Identity Provider is valid, redirects back to the login screen of Exivity."},"response":[],"_postman_id":"e2242d8d-f721-4a1a-9145-6828024f3db6"}],"id":"043cebd0-bc7b-4b2d-a4a8-4c2b8a6ea284","description":"Endpoints for supporting Single Sign-On authentication flow using SAML.\n\nExivity documentation: [https://docs.exivity.com/Security/Authentication/SAML2](https://docs.exivity.com/Security/Authentication/SAML2)","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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":"This request required an email address. It checks that it is valid in our system and they email the user a reset token.\n\nOn success, a `HTTP 204 No Content` success status response will be returned."},"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"},"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":"This request validates the reset token and username, and then resets a users password.\n\nOn success, a `HTTP 204 No Content` success status response will be returned."},"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":"If a user forgets their password, this endpoint can be used to generate a new password. There are two steps:\n\n1.  **Request a password reset** \\- this generates a new reset token, which is emailed the user.\n2.  **Perform a password reset** - the reset token is used to validate the user and then reset their password.","auth":{"type":"noauth"},"_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":{"token":"{{token}}"}},"method":"GET","header":[],"url":"{{base_url}}/v1/auth/ping","description":"Test authentication is working correctly. If should reply with `pong` if all is correct."},"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":"The default method of authentication against the API is done through a stateless JWT token.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#authentication](https://docs.exivity.com/architecture%20concepts/glossary/#authentication)","auth":{"type":"noauth"},"_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":{"token":"{{token}}"}},"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`, `budgets`."}]}},"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":{"token":"{{token}}"}},"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 - {{$randomInt}}\",\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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/reports/:report_id","host":["{{base_url}}"],"path":["v1","reports",":report_id"],"variable":[{"key":"report_id","value":"{{report_id}}","type":"string","description":"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":{"raw":"{{base_url}}/v1/reports/:report_id/prepare?start={{start}}&end={{end}}","host":["{{base_url}}"],"path":["v1","reports",":report_id","prepare"],"query":[{"key":"start","value":"{{start}}","description":"The start of the date range (inclusive) you want to prepare the report for in `YYYY-MM-DD` format."},{"key":"end","value":"{{end}}","description":"The end of the date range (inclusive) you want to prepare the report for in `YYYY-MM-DD` format."}],"variable":[{"key":"report_id","value":"{{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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{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=","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."},{"key":"timeline","value":"","description":"One of `day`, `month` or `none`. Defaults to `day`."},{"key":"depth","value":"","description":"The depth in the report definition you want to report on. Defaults to 1."},{"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."},{"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."},{"key":"format","value":"","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`."},{"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`."},{"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."},{"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."},{"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`."}],"variable":[{"key":"report_id","value":"{{report_id}}","description":"ID of report to run"}]},"description":"⚠️ The `filter[parent_account_id]` is deprecated. Please use `filter[account_id]` instead.\n\nThe output format when either `json` or `csv` is selected as the `format` parameter:\n\n| attribute | type | description |\n| --- | --- | --- |\n| rate_id | _string_ | Key for the applicable rate |\n| service_id | _string_ | Key for the applicable service, only when `services` is included in the `dimension` parameter |\n| servicecategory_id | _string_ | Key for the applicable service category, only when `services` is included in the `dimension` parameter |\n| account_id | _string_ | Key for the applicable account, only when `accounts` is included in the `dimension` parameter |\n| instance_value | _string_ | Unique identifier for the applicable instance, only when `instances` is included in the `dimension` parameter |\n| day | _string_ | The day in `YYYYMMDD` format, only when the `timeline` parameter is set to `day` |\n| month | _string_ | The month in `YYYYMM` format, only when the `timeline` parameter is set to `month` |\n| subtotal_quantity | _float_ | Quantity before adjustments and mininum commit are applied |\n| min_commit_delta_quantity | _float_ | Difference in quantity based on applying minimum commit, only populated when `instances` is not included in the `dimension` parameter |\n| total_quantity | _float_ | Quantity after adjustments and mininum commit are applied. If `instances` is included in the `dimension` parameter, equal to _subtotal_quantity_. |\n| unit_based_subtotal_charge | _float_ | Fraction of charge based on a per unit rate, before adjustments and mininum commit are applied |\n| interval_based_subtotal_charge | _float_ | Fraction of charge based on a per interval rate, before adjustments and mininum commit are applied |\n| avg_unit_based_rate | _float_ | Average per unit rate |\n| subtotal_charge | _float_ | Charge (same as `unit_based_subtotal_charge + interval_based_subtotal_charge`) before adjustments and mininum commit are applied |\n| min_commit_delta_charge | _float_ | Difference in charge based on applying minimum commit, only populated when `instances` is not included in the `dimension` parameter |\n| total_charge | _float_ | Charge after adjustments and mininum commit are applied. If `instances` is included in the `dimension` parameter, equal to _subtotal_charge_. |\n| total_cogs | _float_ | COGS, only if user permissions includes `VIEW_COGS` |\n| total_net | _float_ | Net (same as `total_charge - total_cogs`), only if user permissions includes `VIEW_COGS` |\n| account_key | _string_ | Key for the applicable account, only when `accounts` is included in the `dimension` parameter and `account_key` is included in the `include` parameter |\n| account_name | _string_ | Name for the applicable account, only when `accounts` is included in the `dimension` parameter and `account_name` is included in the `include` parameter |\n| service_key | _string_ | Key for the applicable service, only when `services` is included in the `dimension` parameter and `service_key` is included in the `include` parameter |\n| service_description | _string_ | Description for the applicable service, only when `services` is included in the `dimension` parameter and `service_description` is included in the `include` parameter |\n| servicecategory_name | _string_ | Name for the applicable service category, only when `services` is included in the `dimension` parameter and `servicecategory_name` is included in the `include` parameter |\n| start_date | _string_ | The start of the date range (inclusive), only when `start_date` is included in the `include` parameter |\n| end_date | _string_ | The end of the date range (inclusive), only when `end_date` is included in the `include` parameter |\n| adjustment_name | _string_ | Comma-separated list of the names of applicable adjustments, only when `adjustment_name` is included in the `include` parameter |\n| adjustments | _array_ | Adjustments data (see below), only populated when `instances` is not included in the `dimension` parameter |\n| breakdown | _object_ | Daily breakdown data of consumed instance quantities which are charged monthly (see below), only populated when `instances` is included in the `dimension` parameter |\n| tier_breakdown | _array_ | Tier breakdown data (see below) |\n\nThe output format of the embedded adjustments data:\n\n| attribute | type | description |\n| --- | --- | --- |\n| id | _integer_ | Key for the applicable adjustment |\n| charge | _float_ | Difference in quantity based on applying this adjustment |\n| quantity | _float_ | Difference in charge based on applying this adjustment |\n\nThe output format of the embedded daily breakdown data:\n\n| attribute | type | description |\n| --- | --- | --- |\n| date _(object keys)_ | _string_ | Usage date |\n| quantity _(object values)_ | _string_ | Usage quantity |\n\nThe output format of the embedded tier breakdown data:\n\n| attribute | type | description |\n| --- | --- | --- |\n| id | _integer_ | Key for the applicable rate tier |\n| quantity | _float_ | Quantity in this rate tier |\n| charge | _float_ | Charge for this rate tier |\n| cogs | _float_ | COGS for this rate tier |"},"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":{"token":"{{token}}"}},"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"}]},"description":"⚠️ This endpoint is currently in alpha and may change at any time. Please don't use in production.\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| service_ids | *string\\[\\]* | Key for the applicable service, only when `services` is included in the `dimension` parameter |\n| servicecategory_ids | *string\\[\\]* | Key for the applicable service category, only when `services` is included in the `dimension` parameter |\n| account_ids | *string\\[\\]* | Key for the applicable account, only when `accounts` is included in the `dimension` parameter |\n| instance_values | *string\\[\\]* | Unique identifier for the applicable instance, only when `instances` is included in the `dimension` parameter |"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"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}}"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"The report object contains the definition of how to generate a report, and once the report has run, the report data itself.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#report](https://docs.exivity.com/architecture%20concepts/glossary/#report)\n\n#### **The report object**\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| name | _string_ | Unique name, max 255 chars |\n| dset | _string_ | Dataset name, max 255 chars |\n| created | _string_ | Date created (UTC) |\n| last_updated | _string_ | Date last updated (UTC) |\n| lvl1_key_col  <br>lvl2_key_col  <br>lvl3_key_col  <br>lvl4_key_col  <br>lvl5_key_col | _string_ | Key column, max 255 chars |\n| lvl1_name_col  <br>lvl2_name_col  <br>lvl3_name_col  <br>lvl4_name_col  <br>lvl5_name_col | _string_ | Name column, max 255 chars |\n| lvl1_label  <br>lvl2_label  <br>lvl3_label  <br>lvl4_label  <br>lvl5_label | _string_ | Label, max 255 chars |\n| lvl1_metadata_definition_id  <br>lvl2_metadata_definition_id  <br>lvl3_metadata_definition_id  <br>lvl4_metadata_definition_id  <br>lvl5_metadata_definition_id | _int_ | Metadata ID |\n| depth | _int_ |  |\n| data_status | _array of objects_ | See data_status object below |\n\n#### **The data_status object**\n\nIf a report has data, it will be contained inside data_status objects.\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| first_date | _date_ (ISO string) | The first date of the report data |\n| last_date | _date_ (ISO string) | The last date of the report data |\n| missing | _int_ | The total number of days with missing data |\n| errors | _int_ | The total number of days with errors |\n| status | _array of objects_ | See the status object below |\n\n#### **The status object**\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| date | _date_ (ISO string) | Data date |\n| missing | _bool_ | True if this day has data |\n| column_status | _string_ | Possible values:  <br>\\- unknown  <br>\\- invalid  <br>\\- ok  <br>\\- missing |\n| account_sync | _bool_ | True if this day has the accounts synchronized (part of preparation) |\n| prepared | _bool_ | True if this day is fully prepared |","auth":{"type":"noauth"},"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"},"_postman_id":"d62f8c85-68fd-4fad-9596-08fb1a2cd993"},{"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"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 - {{$randomInt}}\"\n        }\n    }\n}"},"url":"{{base_url}}/v1/servicecategories"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/servicecategories/:servicecategory_id?include","host":["{{base_url}}"],"path":["v1","servicecategories",":servicecategory_id"],"query":[{"key":"include","value":null,"description":"Include additional related resources. Possible values: `services`, `adjustments`, `budgetitems`."}],"variable":[{"id":"5a218be4-5489-4b53-87bf-a6f655eb4919","key":"servicecategory_id","value":"{{servicecategory_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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 - {{$randomInt}}\"\r\n        }\r\n    }\r\n}\r\n"},"url":{"raw":"{{base_url}}/v1/servicecategories/:servicecategory_id","host":["{{base_url}}"],"path":["v1","servicecategories",":servicecategory_id"],"variable":[{"id":"a8d1bdc4-fe11-458c-91e0-6b1d15e752a8","key":"servicecategory_id","value":"{{servicecategory_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"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"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Categories services can be grouped under. A category can contain multiple services, but each service can only be in one category.\n\nExamples of categories: `Software`, `Web services`\n\n#### The Service Category Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | *string* | 📝﻿ editable | Required, unique name for service category. Max 255 chars. |\n\nThe following resources can be included:\n\n| **relationship** | **cardinality** | **required** |\n| --- | --- | --- |\n| services | 0:n | ❌ |\n| adjustments | n:m | ❌ |\n| budgetitems | n:m | ❌ |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"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  - {{$randomInt}}\",\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"},"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  - {{$randomInt}}\",\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":{"token":"{{token}}"}},"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"}]}},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/services/:service_id","host":["{{base_url}}"],"path":["v1","services",":service_id"],"variable":[{"key":"service_id","value":"{{service_id}}","type":"string"}]}},"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 - {{$randomInt}}\",\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":{"token":"{{token}}"}},"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"}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/services/:service_id","host":["{{base_url}}"],"path":["v1","services",":service_id"],"variable":[{"key":"service_id","value":"{{service_id}}"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Services can be anything that is a sellable item, that can be consumed. And should relate to (extracted) consumption data.\n\nExivtiy documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#service](https://docs.exivity.com/architecture%20concepts/glossary/#service)\n\n#### **The Service Object**\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| key | _string_ | 🔏 immutible | Unique identifier |\n| description | _string_ | 📝 editable | Friendly name |\n| unit_label | _string_ | 📝 editable | Unit of consumption |\n| dset | _string_ | 🔏 immutible | Dset this service is linked to |\n| type | _enum_ | 🔏 immutible | One of `service_name_in_header` or `service_name_in_data` |\n| usage_col | _string_ | 🔏 immutible | Dset column containing keys |\n| consumption_col | _string_ | 🔏 immutible | Dset column containing consumption amount |\n| instance_col | _string_ | 🔏 immutible | Dset column containing unique instance id's |\n| interval | _enum_ | 🔏 immutible | One of `never`, `individually`, `second`, `minute`, `hour`, `day`, `week`, `month` or `year`. Currently, only `individually`, `day` and `month` are implemented |\n| charge_type | _enum_ | 🔏 immutible | One of `none`, `manual`, `manual_per_unit`, `manual_per_interval`, `automatic`, `automatic_per_unit`, `automatic_per_interval` or `other`, read more below |\n| cogs_type | _enum_ | 🔏 immutible | One of `none`, `manual_per_unit`, `manual_per_interval`, `automatic_per_unit` or `automatic_per_interval`, read more below |\n| proration_type | _enum_ | 📝 editable | One of `none` or `full`. If \"full\" with monthly, only charges for the days used. |\n| created_at | _datetime_ | 👁 read-only | Datetime (UTC) the service was first created |\n| updated_at | _datetime_ | 👁 read-only | Datetime (UTC) the service was last updated |\n| seen_at | _date_ | 👁 read-only | ISO-8601 date (YYYY-MM-DD) the service was last seen in a dset |\n\n#### Charge and cogs type\n\nThe attributes `charge_type` and `cogs_type` define how the rate is used when calculating charge and cogs metrics using consumption of the service.\n\n- The first part denotes whether the rate is dynamically derived from the usage data itself (`automatic`) or specified explicitly in rate entities (`manual`).\n    \n- The second part denotes whether an amount per unit of consumption (`per_unit`) and/or per interval (`per_interval`) should be applied.\n    \n\nWhen the second part is omitted, both `per_unit` and `per_interval` are used. If no rate should be applied at all, `none` can be used. A value of `other` means a configuration is used not currently supported by the API.","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/servicesubscriptions?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","servicesubscriptions"],"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: `account`, `service`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id?include","host":["{{base_url}}"],"path":["v1","servicesubscriptions",":servicesubscription_id"],"query":[{"key":"include","value":null,"description":"Include additional related resources. Possible values: `account`, `service`."}],"variable":[{"key":"servicesubscription_id","value":"{{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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id","host":["{{base_url}}"],"path":["v1","servicesubscriptions",":servicesubscription_id"],"variable":[{"key":"servicesubscription_id","value":"{{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":{"token":"{{token}}"}},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/v1/servicesubscriptions/:servicesubscription_id/prepareAffectedReports","host":["{{base_url}}"],"path":["v1","servicesubscriptions",":servicesubscription_id","prepareAffectedReports"],"variable":[{"key":"servicesubscription_id","value":"{{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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"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}}"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Subscriptions enable users to manage one-off and recurring transactions for charging non-metered services.\n\nExivity documentation: [https://docs.exivity.com/services/subscriptions](https://docs.exivity.com/services/subscriptions)\n\n⚠️ Available since v3.0.0\n\n#### The Service Subscription Object\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| name | *string* |  |\n| quantity | *int* |  |\n| rate | *int* |  |\n| cogs | *int* |  |\n| type | recurring/one_off |  |\n| start_date | Y-m-d |  |\n| end_date | Y-m-d |  |\n| alt_interval | day/month/year or null | If not set, the associated service interval is used for the subscription. |\n| charge_day | number | Only validated when type=recurring and interval is year or month.  <br>Format:  <br>* **year:** *\\--MM--DD*, example: --01-31  <br>* **month** *number*, examples: 1 or 28. |\n| instance | string |  |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/rates?page[limit]&page[offset]&sort&filter[attribute]&include","host":["{{base_url}}"],"path":["v1","rates"],"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":null,"description":"Include additional related resources. Possible values: `service`, `account`, `ratetiers`."}]}},"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":{"token":"{{token}}"}},"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":"Account specific rates can be created through this endpoint by specifying the `account` relationship in the request body, e.g.:\n\n```\n\"relationships\": {\n\t\"service\": { ... },\n\t\"account\": {\n\t\t\"data\": {\n\t\t\t\"type\": \"account\",\n\t\t\t\"id\": \"1\"\n\t\t}\n\t}\n}\n```"},"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":{"token":"{{token}}"}},"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":[{"key":"rate_id","value":"{{rate_id}}","description":"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":{"token":"{{token}}"}},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/v1/rates/:rate_id/prepareAffectedReports","host":["{{base_url}}"],"path":["v1","rates",":rate_id","prepareAffectedReports"],"variable":[{"key":"rate_id","value":"{{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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/rates/:rate_id","host":["{{base_url}}"],"path":["v1","rates",":rate_id"],"variable":[{"key":"rate_id","value":"{{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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"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}}"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Rates allows you to configure manual rates for services that do not have a rate provided with their data source.\n\nExivity documentation: [https://docs.exivity.com/services/rates](https://docs.exivity.com/services/rates)\n\n#### The Rate Object\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| rate | _numeric_ |  |\n| rate_col | _string_ |  |\n| threshold | _numeric_ |  |\n| min_commit | _nullable/numeric_ |  |\n| effective_date | _required, format: yyyy-mm(-dd)_ | If a service is tiered, rates are applied for whole months. So the format is year-month. |\n| end_date | nullable, format: yyyy-mm(-dd) | 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. |\n| tier_aggregation_level | _nullable/numeric_ |  |\n| fixed | _numeric_ |  |\n| fixed_col | _string_ |  |\n| cogs_rate | _numeric_ |  |\n| cogs_rate_col | _string_ |  |\n| cogs_fixed | _numeric_ |  |\n| cogs_fixed_col | _string_ |  |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/ratetiers?page[limit]&page[offset]&sort&filter[attribute]&include","host":["{{base_url}}"],"path":["v1","ratetiers"],"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":null,"description":"Include additional related resources. Possible values: `rate`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/ratetiers/{{ratetier_id}}?include=","host":["{{base_url}}"],"path":["v1","ratetiers","{{ratetier_id}}"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `rate`."}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/ratetiers/{{ratetier_id}}"},"response":[],"_postman_id":"5c3f5009-1fd3-4e74-815c-e1cf5e458862"}],"id":"88f61d49-36e5-458f-9a2c-523658ab4631","description":"⚠️ These endpoints are currently in alpha and may change at any time. Please don't use in production.","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/adjustments?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","adjustments"],"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: `account`, `services`, `servicecategories`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/adjustments/:adjustment_id?include","host":["{{base_url}}"],"path":["v1","adjustments",":adjustment_id"],"query":[{"key":"include","value":null,"description":"Include additional related resources"}],"variable":[{"key":"adjustment_id","value":"{{adjustment_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/adjustments/:adjustment_id","host":["{{base_url}}"],"path":["v1","adjustments",":adjustment_id"],"variable":[{"key":"adjustment_id","value":"{{adjustment_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"method":"PATCH","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/v1/adjustments/:adjustment_id/prepareAffectedReports","host":["{{base_url}}"],"path":["v1","adjustments",":adjustment_id","prepareAffectedReports"],"variable":[{"key":"adjustment_id","value":"{{adjustment_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/adjustments/:adjustment_id","host":["{{base_url}}"],"path":["v1","adjustments",":adjustment_id"],"variable":[{"key":"adjustment_id","value":"{{adjustment_id}}","type":"string"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Adjustments allow a user to create account-specific rate adjustment policies.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#adjustment](https://docs.exivity.com/architecture%20concepts/glossary/#adjustment)\n\n#### The Adjustment Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required |\n| amount | _double_ | 📝 editable | Required |\n| sort | _integer_ | 📝 editable | Required, min: 0 |\n| type | _enum_(`relative`, `absolute`) | 📝 editable | Required |\n| target | _enum_(`charge`, `quantity`) | 📝 editable | Required |\n| first_interval | _string_ | 📝 editable | Required, format: Y-m |\n| last_interval | _string?_ | 📝 editable | Format: Y-m |\n| created_at | _timestamp_ | 👁 read-only |  |\n| updated_at | _timestamp_ | 👁 read-only |  |\n\nThe following resources can be included:\n\n| **relationship** | **type** | **required** |\n| --- | --- | --- |\n| has one | account | ✔️ |\n| has many | services | ❌ |\n| has many | servicecategories | ❌ |","auth":{"type":"noauth"},"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":"Categories services can be grouped under. A category can contain multiple services, but each service can only be in one category.\n\nExamples of categories: `Software`, `Web services`","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/accounts?page[limit]&page[offset]&sort&filter[attribute]=&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[attribute]","value":"","description":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `report`, `parent`, `children`, `rates`, `adjustments`, `users`, `metadata`, `budgetitems`, `servicesubscriptions`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/accounts/{{account_id}}/?include","host":["{{base_url}}"],"path":["v1","accounts","{{account_id}}",""],"query":[{"key":"include","value":null,"description":"Include additional related resources. Possible values: `report`, `parent`, `children`, `rates`, `adjustments`, `users`."}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/accounts/:accountId","host":["{{base_url}}"],"path":["v1","accounts",":accountId"],"variable":[{"key":"accountId","value":"{{account_id}}","type":"string"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Exivity documentation: [https://docs.exivity.com/reports/accounts](https://docs.exivity.com/reports/accounts)\n\n#### The Account Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | *string* | 📝 editable | required, max 255 |\n| level | *integer* | 👁 read-only | between 1-5 |\n| lvl1_key  <br>lvl2_key  <br>lvl3_key  <br>lvl4_key  <br>lvl5_key | *string* | 👁 read-only |  |","auth":{"type":"noauth"},"_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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgets?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","budgets"],"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: `revisions`, `report`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgets/:budget_id?include=","host":["{{base_url}}"],"path":["v1","budgets",":budget_id"],"query":[{"key":"include","value":"","description":"Include additional related resources: `revisions`"}],"variable":[{"key":"budget_id","value":"{{budget_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/budgets/:budget_id","host":["{{base_url}}"],"path":["v1","budgets",":budget_id"],"variable":[{"key":"budget_id","value":"{{budget_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgets/:budget_id/run?start={{start}}&end={{end}}","host":["{{base_url}}"],"path":["v1","budgets",":budget_id","run"],"query":[{"key":"start","value":"{{start}}"},{"key":"end","value":"{{end}}"}],"variable":[{"key":"budget_id","value":"{{budget_id}}","type":"string"}]}},"response":[],"_postman_id":"84b4c28e-e0d8-42ec-ac00-3d36796417fa"}],"id":"4c6991a8-141f-4c17-acc8-7fea42b3cd43","description":"Exivity documentation: [https://docs.exivity.com/reports/budget](https://docs.exivity.com/reports/budget)\n\n#### The Budget Object\n\n| **attribute** | **type** |\n| --- | --- |\n| interval | *required, in: month, quarter, year* |\n| description | *required, string* |\n| metric | *in: charge, cogs* |","auth":{"type":"noauth"},"_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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgetrevisions?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","budgetrevisions"],"query":[{"key":"page[limit]","value":null},{"key":"page[offset]","value":null},{"key":"sort","value":null},{"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: `budget`, `items`"}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id?include=","host":["{{base_url}}"],"path":["v1","budgetrevisions",":budgetrevision_id"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `budget`, `items`"}],"variable":[{"key":"budgetrevision_id","value":"{{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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id/validate","host":["{{base_url}}"],"path":["v1","budgetrevisions",":budgetrevision_id","validate"],"variable":[{"key":"budgetrevision_id","value":"{{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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/budgetrevisions/:budgetrevision_id","host":["{{base_url}}"],"path":["v1","budgetrevisions",":budgetrevision_id"],"variable":[{"key":"budgetrevision_id","value":"{{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":{"token":"{{token}}"}},"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}}"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"#### The Budget Review Object\n\n| **attribute** | **type** |\n| --- | --- |\n| effective_from | required, string, unique with in budget |","auth":{"type":"noauth"},"_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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgetitems?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","budgetitems"],"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: `revision`, `parent`, `children`, `account`, `services`, `servicecategories`"}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/budgetitems/:item_id?include=","host":["{{base_url}}"],"path":["v1","budgetitems",":item_id"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `revision`, `parent`, `children`, `account`, `services`, `servicecategories`"}],"variable":[{"key":"item_id","value":"{{budgetitem_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/budgetitems/:budgetitem_id","host":["{{base_url}}"],"path":["v1","budgetitems",":budgetitem_id"],"variable":[{"key":"budgetitem_id","value":"{{budgetitem_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":[{"key":"budgetitem_id","value":"{{budgetitem_id}}","type":"string"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":{"token":"{{token}}"}},"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"},"response":[],"_postman_id":"83770ddf-b34b-4933-8bb7-fa9774e9da4f"}],"id":"bb3e09d1-33de-45c4-b0f5-48c04bc5318b","description":"#### The Budget Item Object\n\n| **attribute** | **type** |\n| --- | --- |\n| kind | *required, in: account, service category, service* |\n| status | *required, in: regular, excluded, remainder* |\n| filter | *in: none, servicecategory, service* |\n| percent | *required, bool* |\n| amount | *required if* *`percent`* *if true, number 0-100* |\n| distribution | *required, in: none, even, shared* |","auth":{"type":"noauth"},"_postman_id":"bb3e09d1-33de-45c4-b0f5-48c04bc5318b"}],"id":"92661722-064b-e78a-ac6d-4172cf895678","auth":{"type":"noauth"},"_postman_id":"92661722-064b-e78a-ac6d-4172cf895678"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/extractors"},"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":{"token":"{{token}}"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Extractor test - {{$randomInt}}\",\r\n  \"contents\": \"print Hello\\nvar key1 = value1\\npublic var key2 = value2\\npublic encrypt var key3 = 0\"\r\n}"},"url":"{{base_url}}/v1/extractors"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/extractors/{{extractor_name}}"},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"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}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/extractors/{{extractor_name}}","description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Extraction is the process by which USE (Unified Scriptable Extractor) retrieves data from external locations. [Read more.](https://docs.exivity.com/architecture%20concepts/glossary/#extractor)\n\n#### The Extractor Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 🔏 immutible | Required, unique, max 255 chars. |\n| contents | _string_ | 📝 editable | Extractor script |\n| variables | _array_ | 📝 editable | Array of Variable Objects |\n| hash | _string_ | 👁 read-only |  |\n| last_modified | _datetime_ | 👁 read-only |  |\n\n#### The Variable Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required |\n| value | _string_ | 📝 editable |  |\n| type | _string_ | 📝 editable |  |\n| line | string | 👁 read-only |  |\n| comment | string |  |  |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/transformers"},"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":{"token":"{{token}}"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Transformer test {{$randomInt}}\",\r\n  \"contents\": \"# script here\"\r\n}"},"url":"{{base_url}}/v1/transformers"},"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 {{$randomInt}}\",\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":{"token":"{{token}}"}},"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":[{"key":"transformer_name","value":"{{transformer_name}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/transformers/:transformer_name/run?date={{date}}&start_date=&end_date=&limit&break_at&preview=&snapshot_deset&environment_id","host":["{{base_url}}"],"path":["v1","transformers",":transformer_name","run"],"query":[{"key":"date","value":"{{date}}","description":"Date to run the fransformer for (in `YYYY-MM-DD` format)."},{"key":"start_date","value":"","description":"If the transformer should be run for a range of dates, the start date to run the fransformer for (in `YYYY-MM-DD` format)."},{"key":"end_date","value":"","description":"If the transformer should be run for a range of dates, the end date to run the fransformer for (in `YYYY-MM-DD` format)."},{"key":"limit","value":null,"description":"Limit the number of records to preview, defaults to `10`."},{"key":"break_at","value":null,"description":"When in preview mode, stop executing the transformer before this line."},{"key":"preview","value":"","description":"If set to `1`, all statements which modify the system will be skipped and the default dataset will be included with the response."},{"key":"snapshot_deset","value":null,"description":"With preview only  - name of dset to preview. If not selected, default dset will be used."},{"key":"environment_id","value":null,"description":"Environment ID (optional)"}],"variable":[{"key":"transformer_name","value":"{{transformer_name}}","type":"string"}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/v1/transformers/{{transformer_name}}"},"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":"Exivity documentation: [https://docs.exivity.com/data-pipelines/transform](https://docs.exivity.com/data-pipelines/transform)\n\n#### Transformer Attributes\n\n| **attribute** | **type** |\n| --- | --- |\n| name | string |\n| contents | string |\n| hash | string |\n| last_modified | string |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/dsets?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","dsets"],"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`, `reports`, `metadatadefinition`."}]}},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/dsets/:name","host":["{{base_url}}"],"path":["v1","dsets",":name"],"variable":[{"key":"name","value":"{{dset_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/dsets/:name","host":["{{base_url}}"],"path":["v1","dsets",":name"],"query":[{"key":"","type":"text","value":""}],"variable":[{"key":"name","value":"{{dset_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/dsets/:name?start={{start}}&end={{end}}","host":["{{base_url}}"],"path":["v1","dsets",":name"],"query":[{"key":"start","value":"{{start}}","description":"The start of the date range (inclusive) you want to delete from the dataset. If not specified, use the first date of the dataset."},{"key":"end","value":"{{end}}","description":"The end of the date range (inclusive) you want to delete from the dataset. If not specified, use the last date of the dataset."}],"variable":[{"key":"name","value":"{{dset_id}}","type":"string"}]}},"response":[],"_postman_id":"4d4f2e89-e499-46ce-afca-ec88b7692b8b"}],"id":"6f25717a-cc68-0898-4ab6-f1b70f89380b","auth":{"type":"noauth"},"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"},{"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":{"token":"{{token}}"}},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"file","description":"File to be uploaded","type":"file","value":null},{"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","description":"Only the following file types are accepted:\n\n- csv\n- txt\n- json\n- xml\n\nUploaded files are stored as `%EXIVITY_HOME_PATH%/import/[group]/[yyyy]/[mm]/[dd]_uploaded_[sequence].[extension]`, where _sequence_ is a 3 characters long numberic string with padded zeros (e.g. `001` or `026`).\n\n_Note: starting with Exivity v3.0.0, this endpoint will no longer include the `/import/` prefix in the returned JSON response._"},"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":{"token":"{{token}}"}},"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":"Only the following file types are accepted:\r\n\r\n- csv\r\n- txt\r\n- json\r\n- xml\r\n\r\nUploaded files are stored as `%EXIVITY_HOME_PATH%/import/[path]`, where the `path` is derived from the request URL. Existing files will be overwritten."},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/file/:folder","host":["{{base_url}}"],"path":["v1","file",":folder"],"variable":[{"key":"folder","value":"","type":"string","description":"Folder path"}]},"description":"List the files in a given folder.  \nExample:\n\n- /v1/file/generic\n- /v1/file/generic/2023\n    \n\nAll files are stored in the `%EXIVITY_HOME_PATH%/import` folder. So **/v1/file/generic** would return the files from `%EXIVITY_HOME_PATH%/import/generic`."},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/file/:folder/:filename","host":["{{base_url}}"],"path":["v1","file",":folder",":filename"],"variable":[{"key":"folder","value":"","type":"string"},{"key":"filename","value":"","type":"string"}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/file/:folder/:filename","host":["{{base_url}}"],"path":["v1","file",":folder",":filename"],"variable":[{"key":"folder","value":"","type":"string"},{"key":"filename","value":"","type":"string"}]}},"response":[],"_postman_id":"400853c4-f528-458b-bc7e-f5a5cb264587"}],"id":"7d48bdde-6981-8dd1-7e2f-510d938ad22f","description":"⚡ **Not JSON:API compliant** ⚡\n\nAtomic support: ❌\n\nThis endpoint lets you work with files in the [Exivity home directory](https://docs.exivity.com/getting%20started/installation/1%20node/directory%20structure/#home-directory). Currently, only uploading files is supported.\n\n_Note: starting with Exivity v3.0.0, the response structure for all endpoints will be streamlined._","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"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."}]}},"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":{"token":"{{token}}"}},"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 - {{$guid}}\",\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"}]}},"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 - {{$guid}}\",\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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/metadatadefinitions/{{metadatadefinition_id}}","description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"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.\n\n**Use cases:**\n\n- Store SAML user groups or roles as arrays\n    \n- Track custom attributes like cost centers, departments, or tags\n    \n- Enforce data validation with regex patterns or predefined lists\n    \n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#metadatadefinition](https://docs.exivity.com/architecture%20concepts/glossary/#metadatadefinition)\n\n## The Metadata Definition Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required, unique |\n| fields | _array_ | 📝 editable | Required, array of **Field Objects** (see below) |\n\n**Field Object**\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required, unique |\n| type | _enum_ (`string`, `list`, `numeric`, `date`, `string_array`) | 📝 editable | Required |\n| list | _array_ | 📝 editable | Required if `type=list` |\n| validate | _string_ | 📝 editable | Optional regex pattern. For `type=string`, validates the entire value. For `type=array_string`, validates each item in the array individually |\n\n**Field Types**\n\n- `string` - Single string value\n    \n- `list` - Single value from a predefined list of options (requires `list` attribute)\n    \n- `numeric` - Numeric value\n    \n- `date` - Date value\n    \n- `string_array` - Array of strings. Useful for multi-valued attributes like SAML user groups. If a `validate` regex is provided, it applies to each individual item in the array\n    \n\n**Examples**\n\n``` json\n// 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 ```\n\nThe following relationships can be included:\n\n| **relationship** | **cardinality** | **type** | **required** |\n| --- | --- | --- | --- |\n| metadata | hasMany | metadata | ❌ |\n| datasets | hasMany | datasets | ❌ |\n\n#### The Metadata Definition Object\n\n| **attribute** | **type** |\n| --- | --- |\n| name | required, string, unique |\n| fields | required, array of Field Objects |\n\n#### **The Field Object**\n\n| **attribute** | **type** |\n| --- | --- |\n| name | required, string |\n| type | required, in: string, list, numeric, date, string_array |\n| list | required if type=list |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/metadata?page[limit]&page[offset]&sort&filter[name]=&include=","host":["{{base_url}}"],"path":["v1","metadata"],"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: `definition`, `accounts`, `services`."}]}},"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":{"token":"{{token}}"}},"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."}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/metadata/{{metadata_id}}","description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Metadata stores custom information attached to accounts or services. Each metadata instance conforms to a metadata definition that specifies its structure and validation rules.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#metadata](https://docs.exivity.com/architecture%20concepts/glossary/#metadata)\n\n#### The Metadata Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required, unique identifier for this metadata instance |\n| values | _object_ | 📝 editable | 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 **Values Object Structure**. |\n| metadatadefinition_id | _integer_ | 📝 editable | Required. ID of the metadata definition this metadata conforms to |\n| account_id | _integer_ | 📝 editable | Optional. ID of the account this metadata is attached to (mutually exclusive with service_id) |\n| service_id | _integer_ | 📝 editable | Optional. ID of the service this metadata is attached to (mutually exclusive with account_id) |\n\n**Values Object Structure**\n\nThe `values` object contains key-value pairs based on the metadata definition's fields:\n\n``` json\n{\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 ```\n\nThe following relationships can be included:\n\n| **relationship** | **cardinality** | **type** | **required** |\n| --- | --- | --- | --- |\n| definition | hasOne | metadatadefinition | ✅ |\n| services | hasMany | service | ❌ |\n| accounts | hasMany | account | ❌ |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflows?page[limit]=&page[offset]&sort&filter[attribute]&include=","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":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `steps`, `schedules`, `runs`."}]}},"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":{"token":"{{token}}"}},"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":[{"key":"workflowId","value":"{{workflow_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"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."}]},"description":"Once a workflow has been created and steps have been added, you can now run the workflow. See `workflow_runs` and `workflow_step_logs` to view the output of a run."},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflows/{{workflow_id}}","description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"A workflow allows you to schedule various tasks and execute them at a specific date and time.\n\nExivity documentation:  \n[https://docs.exivity.com/Architecture%20concepts/Glossary#workflow](https://docs.exivity.com/Architecture%20concepts/Glossary#workflow)\n\n**To create a workflow**\n\n1. Create a workflow object\n    \n2. Create a workflow schedule\n    \n3. Add steps to the workflow\n    \n\n#### The Workflow Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required |\n| description | _string_ | 📝 editable |  |\n| created_at | _datetime_ | 👁 read-only |  |\n| updated_at | _datetime_ | 👁 read-only |  |\n\nThe following relationships can be included:\n\n| **relationship** | **cardinality** | **type** | **required** |\n| --- | --- | --- | --- |\n| steps | hasMany | workflowstep | ❌ |\n| schedules | hasMany | workflowschedule | ❌ |\n| runs | hasMany | workflowrun | ❌ |","auth":{"type":"bearer","bearer":{}},"_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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"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"}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/workflowschedules/{{workflowschedule_id}}","description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"Exivity documentation:  \n[https://docs.exivity.com/architecture%20concepts/glossary/#workflowschedule](https://docs.exivity.com/architecture%20concepts/glossary/#workflowschedule)\n\nSchedule how often a workflow should run.\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| start_time | _datetime_ | 📝 editable | Required. Earliest time workflow can start. |\n| timezone | _timezone_ | 📝 editable | Required. The timezone is used only when adjust_for_dst is set to true. If the timezone doesn't use daylight saving time _(i.e. (UTC) Coordinated Universal Time, (UTC+01:00) West Central Africa etc.)_, no changes are applied when calculating the next run. |\n| adjust_for_dst | _boolean_ | 📝 editable | Required.  <br>If true, and the timezone uses daylight saving time, the workflow run time is adjusted to take this into account.  <br>**Example:**  <br>\\* in winter, 00:01 UTC means 01:01 in Berlin  <br>\\* in summer, 00:01 UTC means 02:01 in Berlin |\n| frequency | _enum_ (`hourly`_,_ `daily`_,_ `monthly`) | 📝 editable | Required |\n| frequency_modifier | _integer_ | 📝 editable | Examples  <br>_**frequency**_**: daily,** _**frequency_modifier**_**: 2** - the workflow will run every two days  <br>  <br>_**frequency**_**: hourly,** _**frequency_modifier**_**: 3** - the workflow will run every three hours |\n| next_run | _datetime_ | 👁 read-only |  |\n\nThe following relationships can be included:\n\n| **relationship** | **cardinality** | **type** | **required** |\n| --- | --- | --- | --- |\n| workflow | hasOne | workflow | ✔️ |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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":"#### Options\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required |\n| from_date | _integer_ | 📝 editable | Date offset, default 0 (today)  <br>Exampele:  <br>0 - today  <br>\\-1 = yesterday  <br>\\-2 = 2 days ago |\n| to_date | _integer_ | 📝 editable | Date offset, default 0 (today) |\n| arguments | _string_ | 📝 editable | Custom extractor arguments |\n| environment_id | _numeric_ | 📝 editable | Optional. Loads the variables that have been set in a given environment. |"},"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":{"token":"{{token}}"}},"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":"#### Options\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required |\n| from_date | _integer_ | 📝 editable | Date offset, default 0 (today)  <br>Exampele:  <br>0 - today  <br>\\-1 = yesterday  <br>\\-2 = 2 days ago |\n| to_date | _integer_ | 📝 editable | Date offset, default 0 (today). |\n| environment_id | _numeric_ | 📝 editable | Nullable |"},"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":{"token":"{{token}}"}},"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":"#### Options\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| report_id | _string_ | 📝 editable | Required |\n| split | _enum_ (`daily`, `monthly`) | 📝 editable | Default: monthly  <br>Split the proccessing into daily/monthly chunks, to speed to the processing time. |\n| from_date | _numeric_ | 📝 editable | Date offset, default 0 (today)  <br>Exampele:  <br>0 - today  <br>\\-1 = yesterday  <br>\\-2 = 2 days ago |\n| to_date | _numeric_ | 📝 editable | Date offset, default 0 (today). |"},"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":{"token":"{{token}}"}},"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":"#### Options\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| command | _string_ | 📝 editable | Required |"},"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":{"token":"{{token}}"}},"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":"#### Options\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| command | _enum_(`exivity:gc`, `exivity:purge-cache` ) | 📝 editable | Required |\n| arguments | _string_ |  |  |"},"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":{"token":"{{token}}"}},"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":"#### Options\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| budget_id | numeric | 📝 editable | Required |"},"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"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}}"}]}},"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":{"token":"{{token}}"}},"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"}]}},"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":{"token":"{{token}}"}},"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":[{"key":"workflowstep_id","value":"{{workflowstep_id}}","type":"string"}]}},"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":{"token":"{{token}}"}},"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":[{"key":"workflowstep_id","value":"{{proximity_workflowstep_id}}","type":"string"}]},"description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"A workflow requires one or more steps. These steps are executed when a workflow is run.\n\n#### The Workflow Step Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| type | enum( `extract`, `transform`, `prepare_report`, `execute`, `proximity`, `publish_report`, `evaluate_budget` ) | 📝 editable | Workflow step type |\n| options | _required, array, values depend on_ `type` | 📝 editable | Each different step `type` has different options, which are documentated in the \"Add a new ... step\" sections. |\n| timeout | _integer_ | 📝 editable | In seconds, default: 3600,min:1, max:86400 |\n| wait | _boolean_ | 📝 editable | 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. |\n| ~~sort~~ | ~~_numeric_~~ |  | _deprecated, use previous relationship instead_ |\n\n| **relationship** | **cardinality** | **type** |\n| --- | --- | --- |\n| previous | hasOne | workflowstep |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowruns/:workflowrun_id?include=","host":["{{base_url}}"],"path":["v1","workflowruns",":workflowrun_id"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `steplogs`, `workflow`"}],"variable":[{"key":"workflowrun_id","value":"{{workflowrun_id}}","type":"string"}]}},"response":[],"_postman_id":"2de7f48b-9532-4194-bba1-54991681d0cc"}],"id":"f85bcd76-a3a7-43bc-9e3b-7fe8d5594b8a","description":"⚠️ **We plan to deprecate these endpoints in the next version of Exivity. A new** **`/jobs`** **endpoint will be added which will offer the same functionality.**\n\nRuns contain workflow status information of workflow runs.\n\n#### The Workflow Run Object\n\n| **attribute** | **type** | **mutability** |\n| --- | --- | --- |\n| start_date | _datetime_ | 👁 read-only |\n| end_date | _datetime_ | 👁 read-only |\n| status | _enum_ (`started`, `success`, `failed`, `timed_out`, `invalid`, `internal_error`, `killed`) | 👁 read-only |\n\nThe following relationships can be included:\n\n| **relationship** | **cardinality** | **type** | **required** |\n| --- | --- | --- | --- |\n| workflow | hasOne | workflow | ✔️ |\n| steplogs | hasMany | workflowsteplog | ❌ |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowsteplogs?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","workflowsteplogs"],"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: `run`, `step`."}]}},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/workflowsteplogs/:workflowsteplog_id?include=","host":["{{base_url}}"],"path":["v1","workflowsteplogs",":workflowsteplog_id"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `run`, `step`."}],"variable":[{"key":"workflowsteplog_id","value":"{{workflowsteplog_id}}","type":"string"}]}},"response":[],"_postman_id":"14fb856a-a5a2-47aa-816f-3f73a976b131"}],"id":"f1c86299-96e1-4487-a3c3-220b24055854","description":"⚠️ We plan to deprecate these endpoints in the next version of Exivity. A new `/jobs` endpoint will be added which will offer the same functionality.","auth":{"type":"noauth"},"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"},"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"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/notificationchannels?include=","host":["{{base_url}}"],"path":["v1","notificationchannels"],"query":[{"key":"include","value":"","description":"Possible values: `subscriptions`, `user`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/notificationchannels/{{notification_channel_id}}?include=subscriptions,user","host":["{{base_url}}"],"path":["v1","notificationchannels","{{notification_channel_id}}"],"query":[{"key":"include","value":"subscriptions,user"}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"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":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"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.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#notificationchannel](https://docs.exivity.com/architecture%20concepts/glossary/#notificationchannel)\n\n## The NotificationChannel Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required unless `type=database` |\n| type | _enum_( `database`, `mail`, `slack`, `nexmo`, `webhook`) | 📝 editable | Required |\n| info | _object_ | 📝 editable | Required unless `type=database`. **Info Object** (see below) |\n\n**Info Object**\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| recipient | _string_ | 📝 editable | Required. Email format if `type=email`. URL format if `type=webhook`. |\n| cc | _string_? or _array?_ | 📝 editable | Can be used if `type=email`. Email format |\n| bcc | _string?_ or _array?_ | 📝 editable | Can be used if `type=email`. Email format |\n| headers | _array_ | 📝 editable | Can be used if `type=webhook`. |\n| tls_verification | _boolean_ | 📝 editable | Can be used if `type=webhook`. |\n| include_attachments | _boolean_ | 📝 editable | Can be used if `type=webhook`. |\n\nThe following relationships can be included:\n\n| **relationship** | **type** | **required** |\n| --- | --- | --- |\n| hasOne | user | ✔️ |\n| hasMany | notificationsubscriptions | ❌ |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"","value":"","disabled":true}],"url":{"raw":"{{base_url}}/v1/notificationsubscriptions/{{notification_subscritpion_id}}?include=channels","host":["{{base_url}}"],"path":["v1","notificationsubscriptions","{{notification_subscritpion_id}}"],"query":[{"key":"include","value":"channels"}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"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":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"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.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#notification](https://docs.exivity.com/architecture%20concepts/glossary/#notification)\n\n## The NotificationSubscription Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| name | _string_ | 📝 editable | Required |\n| type | _enum_(`workflow_ended`, `report_published`, `budget_evaluated`) | 📝 editable | Required |\n| enabled | _boolean_? | 📝 editable |  |\n| title | _string_? | 📝 editable | 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}. |\n| description | _string_? | 📝 editable | Same behavior as title attribute |\n| info | _object_ | 📝 editable | Required. **Info Object** (see below) |\n\n### **Info Object**\n\n| **attribute** | **type** | **mutability** | **description** |  |\n| --- | --- | --- | --- | --- |\n| follow | _array_? | 📝 editable | Pass \"`\\\\*`\" to follow all, or pass an array of IDs corresponding to the `type` attribute. |  |\n| only_status | _array_ | 📝 editable | `successful`, `failed` |  |\n| files | _object_? | 📝 editable | Use if `type=workflow_ended` **Files Object** (see below) |  |\n| report_id | _number_ | 📝 editable | Required if `type=report_published` |  |\n| account_depth | _number_ | 📝 editable | Required if `type=report_published` 1-5 |  |\n| report_type | _enum_(`separated`, `consolidated`) | 📝 editable | Required if `type=report_published` |  |\n| dimension | _array_ | 📝 editable | Use if `type=report_published`. Specify `services` and/or `instances`. `accounts` can also be included if `report_type=consolidated`. |  |\n| group_by | _enum_( `instances_by_instance`, `instances_by_service`) | 📝 editable | Use if `type=report_published`. Dimension must specify `instances`. |  |\n| account_filter | _number_? | 📝 editable | Use if `type=report_published`. |  |\n| date_settings | _enum_(`previous_month`, `month_to_date`) | 📝 editable | Required if `type=report_published` |  |\n| format | _enum_(`csv`, `pdf/summary`) | 📝 editable | Required if `type=report_published` |  |\n| budget_id | _number_ | 📝 editable | Required if `type=budget_evaluated` |  |\n| threshold_percentage | _number_ | 📝 editable | Required if `type=budget_evaluated`. 0-100 |  |\n| only_once | _boolean_ | 📝 editable | Required if `type=budget_evaluated` |  |\n| account_ids | _array_ | 📝 editable | Required if `type=budget_evaluated` |  |\n\n#### Files Object\n\n| **attribute** | **type** | **mutability** | **description** |\n| --- | --- | --- | --- |\n| compress_attachments | _boolean_? | 📝 editable |  |\n| edited_since_workflow_started | _boolean_? | 📝 editable |  |\n| filename | _array_ | 📝 editable | List of filenames to include. Can use regular expressions |\n\n## Relationships\n\nThe following relationships can be included:\n\n| **relationship** | **cardinality** | **type** | **required** |\n| --- | --- | --- | --- |\n| user | hasOne | user | ✔️ |\n| channel | hasOne | notificationchannel | ✔️ |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/notifications","description":"Get all database notification for auth user"},"response":[],"_postman_id":"bb06302f-127a-4f71-9fa4-2e62522bb58c"}],"id":"9add9ff9-39f6-451a-971f-7f2f09d07e7e","auth":{"type":"noauth"},"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"}],"id":"200943b9-5cca-443e-bdb4-27d9fff54501","auth":{"type":"noauth"},"_postman_id":"200943b9-5cca-443e-bdb4-27d9fff54501"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/users/me"},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json","disabled":true},{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/users/me/key","description":"⚠️ Available since v3.0.0.\r\n\r\nThis will invalidate all previously issued tokens."},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/users/me/state?app=glass","host":["{{base_url}}"],"path":["v1","users","me","state"],"query":[{"key":"app","value":"glass","description":"The client to update the state for. One of `glass`, `lens`."}]}},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/v1/users/me/state?app=glass","host":["{{base_url}}"],"path":["v1","users","me","state"],"query":[{"key":"app","value":"glass"}]}},"response":[],"_postman_id":"88623d4f-fe3f-4b8c-99cc-1f3b2fd7cd2e"}],"id":"e891290d-6258-419f-9b51-ad14ae870321","auth":{"type":"noauth"},"_postman_id":"e891290d-6258-419f-9b51-ad14ae870321"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/users?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","users"],"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: `usergroup`, `accounts`."}]}},"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":{"token":"{{token}}"}},"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 - {{$randomInt}}\",\r\n\t\t\t\"email_address\": \"someone_{{$randomInt}}@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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/users/{{new_user_id}}?include=","host":["{{base_url}}"],"path":["v1","users","{{new_user_id}}"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `usergroup`, `accounts`, `channels`, `notificationsubscriptions`."}]}},"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":{"token":"{{token}}"}},"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":"⚠️ Available since v3.0.0.\r\n\r\nThis will invalidate all previously issued tokens."},"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":{"token":"{{token}}"}},"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 - {{$randomInt}}\",\r\n      \"email_address\": \"someone+modified_{{$randomInt}}@exivity.com\",\r\n      \"account_access_type\": \"all\"\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/users/{{new_user_id}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/users/{{new_user_id}}"},"response":[],"_postman_id":"918cd8ca-a9d9-51ee-b51f-9241939ed239"}],"id":"8869248e-edd9-0b19-023d-cc27e4b5eba6","description":"Everyone connecting to our API needs a valid user account. Users can change some of their details themselves.\n\nUsers with the \"manage_users\" permission can view, create, edit and delete users on the system.\n\n#### The User Object\n\n| **attribute** | **type** | **description** |\n| --- | --- | --- |\n| id | *guid* | Unique identifier |\n| account_access_type | *in: all/custom* |  |\n| current_password | *string* | Only used when update current user |\n| display_name | *string* |  |\n| email_address | *string* | Unique email address, max 255 characters |\n| password | *string* | Min 8 characters |\n| source | *in: local/ldap/saml* |  |\n| username | *string, unique username, between 2-255 characters* |  |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/usergroups?filter[attribute]=","host":["{{base_url}}"],"path":["v1","usergroups"],"query":[{"key":"filter[attribute]","value":"","description":"Optionally [filter](#working-with-the-api) results by this attribute"}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}"},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/usergroups/:usergroup_id","host":["{{base_url}}"],"path":["v1","usergroups",":usergroup_id"],"variable":[{"key":"usergroup_id","value":"{{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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/usergroups/{{usergroup_id}}","description":"On success, a `HTTP 204 No Content success status response` will be returned."},"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":"It is possible to create custom usergroups, with different permissions. Users can be assigned to different usergroups.\n\nExivity documentation: [https://docs.exivity.com/administration/user-management/groups](https://docs.exivity.com/administration/user-management/groups)\n\n#### The Usergroup Object\n\n| **attribute** | **type** |\n| --- | --- |\n| name | required, string, max:255, unique |\n| permissions | array |\n| saml_provisioning | nullable, only with SAML usergroups |\n\n#### Permissions\n\nPlease see the Exivity documentation for more information on specific permissions: [https://docs.exivity.com/administration/user-management/groups#user-permissions](https://docs.exivity.com/administration/user-management/groups#user-permissions)\n\nThe following is a list of currently supported permission on our system:\n\n*   view_audit\n*   view_billing\n*   view_budgets\n*   view_cogs\n*   view_logs\n*   manage_accounts\n*   manage_catalogue\n*   manage_data_sources\n*   manage_datasets\n*   manage_files\n*   manage_metadata_definitions\n*   manage_reports\n*   manage_settings\n*   manage_users\n*   manage_workflows","auth":{"type":"bearer","bearer":{}},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/configuration"},"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":{"token":""}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/configuration"},"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":{"token":"{{token}}"}},"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"},"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":"#### Configuration Keys\n\nThe system can be configured using these endpoints.\n\n| **key** | **type** | **description** |\n| --- | --- | --- |\n| APP_DEBUG | _bool, default_ `false` | Turn debug mode on/off. In debug more, a lot more log files are generated. Not recommended for production systems. |\n| APP_NAME | _string, default_ `Exivity` | The name of the application |\n| APP_ICON | string, max length: 1024 kilobytes | Inline image, encoded in base64 |\n| APP_LOGO | string, max length: 512 kilobytes | Inline image, encoded in base64 |\n| APP_FAVICON | string, max length: 5 kilobytes | Website favicon. Inline image, encoded in base64 |\n| APP_COLOUR | _string, default_ `#00a8d8` | Brand colour |\n| APP_CSS | _string_ | Custom CSS to use on the website |\n| APP_DOCUMENTATION | _bool, default_ `true` | Enable to show documentation link in the website header. |\n| APP_LANGUAGE | _string, default_ `en` |  |\n| FINGERPRINTER | _string, default_ `secure_ip_useragent` | Fingerprint algorithm used to verify user location matches location where token was generated.  <br>**secure** - checks protocals match (e.g. http/https)  <br>**ip** - Checks the IP addresses match.  <br>**useragent** - Checks the request is coming from the same user agent.  <br>Possible values: `secure_ip_useragent` / `secure_useragent` |\n| PUBLIC_ROOT |  | The default front-end URL clients should connect to. Fill out as [https://example.com](https://example.com). |\n| SSO_LOGIN_METHOD | _in: local_user_or_ldap, local_user_only, local_user_or_saml, saml_only, local_user_or_ldap_or_saml**Default_ `local_user_or_ldap` |  |\n| USE_LOCAL_STORAGE |  |  |\n| ANALYTICS |  |  |\n| ANALYTICS_EXTRA_PROPERTY |  |  |\n| ERROR_TRACKING |  | Enabling this option will report anonymous error metrics so we can make our product better. |\n| BETA_FEATURES |  |  |\n| USE_CACHE |  |  |\n| CURRENCY | _string, default:_ `EUR` |  |\n| CURRENCY_FORMAT | _string, default:_ `€` |  |\n| DECIMAL_SEPARATOR | _string, default:_ `.` |  |\n| CSV_DELIMITER | _in:_ `,`, `;`, `:`, `\\t`, pipe  <br>_Default_: `,` | Field delimiter for CSV exports |\n| CSV_DECIMAL_SEPARATOR | _in:_ `,`, `.`  <br>_Default:_ `.` | Decimal separator for CSV exports |\n| THOUSAND_SEPARATOR | _nullable, in:_ `,`, `.`, `'` or space  <br>_Default:_ `,` |  |\n| RATE_PRECISION | _int, default:_ `8` | Precision for rates as displayed on the summary report. |\n| REPORT_PRECISION | _int, default:_ `2` | Precision for currency amounts displayed on reports other than summaries. |\n| SUMMARY_PRECISION | _int, default:_ `2` | Precision for currency amounts displayed on the summary report. |\n| QUANTITY_PRECISION | _int, default:_ `6` |  |\n| PERCENTAGE_PRECISION | _int, default:_ `2` |  |\n| DATE_FORMAT | _string, default:_ `dd-MM-yyyy` | [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) |\n| SUMMARY_TITLE | _string, default_ `Summary` |  |\n| SUMMARY_ADDRESS |  |  |\n| SUMMARY_IMAGE |  |  |\n| SUMMARY_EXTRA |  |  |\n| SUMMARY_MIN_COMMIT | _string, default_ `Uplift for minimum commitment of {quantity} {label}` | Used as line item description for minimum commit uplifts. The identifier `{quantity}` will be replaced with the minimum commitment quantity, and `{label}` will be replaced with the unit label. |\n| GRAPH_MAX_SERIES | _int, default_ `15` |  |\n| REPORT_START_MONTH | _int, default_ `1` |  |\n| DISCLAIMER_ENABLED | _bool, default_ `false` | 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. |\n| DISCLAIMER_TITLE | _string, default_ `Disclaimer` | Title shown in the disclaimer overlay. |\n| DISCLAIMER_TEXT | _string_ | Main disclaimer text shown in the disclaimer overlay. Markdown is supported. |\n| DISCLAIMER_AGREE_BUTTON_TEXT | _string, default_ `I agree` | Button text shown in the disclaimer overlay which users have to click in order to continue to the app. |\n| TOKEN_TTL | _string, default_ `4 hours` | Token lifetime - Set the token expiration time interval. Users will have to login again after their token expires. |\n| ALLOW_PERSISTENT_TOKENS | _bool, default_ `false` | Allow users to remain logged in for duration of the token lifetime. |\n| PASSWORD_POLICY | _in: length, length_dictionary, length_dictionary_entropy.**Default_ `length_dictionary` | `length` - see PASSWORD_MIN_LENGTH  <br>`dictionary` - does not allow comon dictionary words.  <br>`entropy` - the [Shannon Entropy](https://en.wikipedia.org/wiki/Entropy_(information_theory)) of the characters must be greater than 3.5 |\n| PASSWORD_MIN_LENGTH | _int, default_ `_8_` (min: `8`, max: `60`) | Set the minimum length of the passwords used. Defaults to 8. |\n| MAX_LOGIN_ATTEMPTS | _int, default_ `5` |  |\n| LOGIN_ATTEMPTS_INTERVAL | _string_ | If null, there's no limit, otherwise, `15 minutes`, `1 hour`, `2 hours`, `30 minutes`, etc. |\n| BLOCK_LOGIN_DURATION | _string, default_ `15 minutes` | `15 minutes`, `1 hour`, `2 hours`, `30 minutes`, etc. |","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/audit?start=&end&page[limit]&page[offset]&sort&filter[attribute]","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."},{"key":"page[limit]","value":null,"description":"Limit the amount of results returned","type":"text"},{"key":"page[offset]","value":null,"description":"Return this page of the results","type":"text"},{"key":"sort","value":null,"description":"Sort results by this attribute","type":"text"},{"key":"filter[attribute]","value":null,"description":"Optionally [filter](#working-with-the-api) results by this attribute.","type":"text"}]}},"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"},"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"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/log?component={{component}}","host":["{{base_url}}"],"path":["v1","log"],"query":[{"key":"component","value":"{{component}}","description":"Required, in: use, transcript, edify, proximity, chronos, pigeon, horizon, merlin, griffon"}]}},"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={{component}}&limit=&filter=&truncate=","host":["{{base_url}}"],"path":["v1","log"],"query":[{"key":"component","value":"{{component}}","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":"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.\n\nExivity documentation: [https://docs.exivity.com/troubleshooting/logs](https://docs.exivity.com/troubleshooting/logs)","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"text/csv","description":"Specify either text/csv or application/json."}],"url":{"raw":"{{base_url}}/v1/dump/data?models=&progress","host":["{{base_url}}"],"path":["v1","dump","data"],"query":[{"key":"models","value":"","description":"Optionally provide a comma separated list of models to include."},{"key":"progress","value":null,"description":"Use progress separators within dump, can be 0 or 1. Defaults to 1."}]}},"response":[],"_postman_id":"0778327e-6143-98a6-3df4-c2727a16ff18"}],"id":"3d388714-3dd3-4725-9a9e-d34f1b59ca06","auth":{"type":"noauth"},"_postman_id":"3d388714-3dd3-4725-9a9e-d34f1b59ca06"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/licence"},"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":{"token":"{{token}}"}},"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"},"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"},"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"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/cache"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json","type":"text"}],"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`."}]}},"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"},"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"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/saml"},"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":{"token":"{{token}}"}},"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"},"response":[],"_postman_id":"885d029a-c81a-41ac-88b5-4bb56b58305c"}],"id":"66cf1965-c3d6-421a-b117-9444e84fc22f","auth":{"type":"noauth"},"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"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/services/"},"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":{"token":"{{token}}"}},"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/"},"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"},"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"},{"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system","description":"⚠️ This endpoint is deprecated and may be removed in future versions of Exivity. Use `/system/version` and `/system/flags` instead."},"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":{"token":""}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/system","description":"⚠️ This endpoint is deprecated and may be removed in future versions of Exivity. Use `/system/version` and `/system/flags` instead."},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/version"},"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":{"token":""}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/version"},"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":{"token":""}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/flags"},"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":{"token":""}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{base_url}}/v1/system/third-party-licences"},"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"},"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"},{"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/translations/:locale/:filename","host":["{{base_url}}"],"path":["v1","translations",":locale",":filename"],"variable":[{"key":"locale","value":"en","type":"string","description":"ISO 639-1 two letter code representation of names of language"},{"key":"filename","value":"words","type":"string"}]},"description":"⚠️ This endpoint is deprecated and may be removed in future versions of Exivity."},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{base_url}}/v1/translations/:locale/:filename","host":["{{base_url}}"],"path":["v1","translations",":locale",":filename"],"variable":[{"key":"locale","value":"en","type":"string","description":"ISO 639-1 two letter code representation of names of language"},{"key":"filename","value":"words","type":"string"}]},"description":"⚠️ This endpoint is deprecated and may be removed in future versions of Exivity."},"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":{"token":"{{token}}"}},"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":{"raw":"{{base_url}}/v1/translations/:locale/:filename","host":["{{base_url}}"],"path":["v1","translations",":locale",":filename"],"variable":[{"key":"locale","value":"en","type":"string","description":"ISO 639-1 two letter code representation of names of language"},{"key":"filename","value":"works","type":"string"}]},"description":"⚠️ This endpoint is deprecated and may be removed in future versions of Exivity."},"response":[],"_postman_id":"a836cb2a-8c9e-4b63-8d4c-79f36573993a"}],"id":"8c4e1311-97c8-48de-ae38-487ecb30d0a5","description":"⚠️ 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.","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/environments?page[limit]&page[offset]&sort&filter[attribute]&include=","host":["{{base_url}}"],"path":["v1","environments"],"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: `variables`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"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`."}]}},"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":{"token":"{{token}}"}},"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 - {{$randomInt}}\",\r\n      \"default_flag\": false\r\n    }\r\n  }\r\n}"},"url":"{{base_url}}/v1/environments/{{environment_id}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{base_url}}/v1/environments/:environment_id","host":["{{base_url}}"],"path":["v1","environments",":environment_id"],"variable":[{"key":"environment_id","value":"{{environment_id}}","type":"string"}]},"description":"You can't delete the default environment.\n\nOn success, a `HTTP 204 No Content success status response` will be returned."},"response":[],"_postman_id":"92e654d3-64f6-4ec3-b215-11899e5bbb82"}],"id":"f37ee782-e53d-4dc7-a94d-454f255e3d00","description":"Exivity documentation: [https://docs.exivity.com/data-pipelines/transform/language/environment](https://docs.exivity.com/data-pipelines/transform/language/environment)","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"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":"Optionally [filter](#working-with-the-api) results by this attribute"},{"key":"include","value":"","description":"Include additional related resources. Possible values: `environment`."}]}},"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":{"token":"{{token}}"}},"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"},"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":{"token":"{{token}}"}},"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"}],"url":{"raw":"{{base_url}}/v1/variables/{{variable_id}}?include=","host":["{{base_url}}"],"path":["v1","variables","{{variable_id}}"],"query":[{"key":"include","value":"","description":"Include additional related resources. Possible values: `variables`."}]}},"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":{"token":"{{token}}"}},"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}}"},"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":{"token":"{{token}}"}},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/v1/variables/{{variable_id}}"},"response":[],"_postman_id":"34d9a130-99f4-46b3-9072-6bbf3d5a44cb"}],"id":"74fec5b3-e74a-4ce0-9412-26b2d04bec17","description":"_Global Variables_ enable users to configure Exivity system-wide variables which can be used in any Extractor or Transformer script.\n\nExivity documentation: [https://docs.exivity.com/architecture%20concepts/glossary/#environment](https://docs.exivity.com/architecture%20concepts/glossary/#environment)","auth":{"type":"noauth"},"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":{"token":"{{token}}"}},"method":"GET","header":[],"url":"{{base_url}}/v1/failed-jobs"},"response":[],"_postman_id":"3b18876f-55f1-430e-97d3-2343b306b80d"}],"id":"d18fd391-6b33-4905-9ed5-d75d155892bc","auth":{"type":"noauth"},"_postman_id":"d18fd391-6b33-4905-9ed5-d75d155892bc"}],"id":"973e5c9a-8d8b-4f08-bb2a-d554819bd23e","auth":{"type":"noauth"},"_postman_id":"973e5c9a-8d8b-4f08-bb2a-d554819bd23e"}],"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"}]}