{"info":{"_postman_id":"d990bcb9-b7f5-4578-bd99-1d77d4bb22e4","name":"Blue Cedar API Documentation","description":"<html><head></head><body><p>Incorporate Blue Cedar deployment services into your CI/CD pipelines using these APIs.</p>\n<h1 id=\"getting-started\">Getting started</h1>\n<p>All requests using the Blue Cedar APIs are authorized with a Bearer token.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>An access token must be retrieved first and passed into the <code>Authorization</code> header. For more information obtaining an access token, see the <a href=\"https://api-docs.bluecedar.com/#f13ecd97-b8e7-497a-afbd-ff573e48c20a\">Authorization</a> documentation.</p>\n<h3 id=\"authentication-error-response\">Authentication error response</h3>\n<p>If a Bearer token or Authorization header is missing, malformed, or invalid, you will receive an HTTP 401 Unauthorized response code.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Getting started","slug":"getting-started"}],"owner":"3402601","collectionId":"d990bcb9-b7f5-4578-bd99-1d77d4bb22e4","publishedId":"2sA3BheEpu","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-04-12T00:28:35.000Z"},"item":[{"name":"Apps v0.1","item":[{"name":"Apps","item":[{"name":"Scan Data","item":[{"name":"Get all scan data for this app","id":"fc26d1cc-436f-432e-9fc3-171e8e97c1da","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/apps/{{appId}}/scan_data","description":"<p>Retrieve all data collected about this app.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","apps","{{appId}}","scan_data"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"dc5d5491-b692-46ba-9745-f17fab981a57","name":"Get all scan data for an Android app","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/apps/d02a3a88-2d0d-4ce5-8ccb-c6f1d141adc0/scan_data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n  \"id\" : \"4fd219d7-d298-4bf5-b2e1-bcf52ef56869\",\n  \"audit\" : {\n    \"createdBy\" : \"04eaca09-2348-4cb9-b272-291a88cb356f\",\n    \"createdDate\" : \"2023-11-21T18:37:46.162574\",\n    \"modifiedBy\" : \"04eaca09-2348-4cb9-b272-291a88cb356f\",\n    \"modifiedDate\" : \"2023-11-21T18:37:46.162574\"\n  },\n  \"scanData\" : {\n    \"ANDROID_BASIC\" : {\n      \"metaInfo\" : {\n        \"appName\" : \"Compass\",\n        \"appVersion\" : \"4.16.0-beta-373-a30cf9f\",\n        \"sdkVersion\" : \"31\",\n        \"packageName\" : \"com.bluecedar.compass\",\n        \"appVersionCode\" : \"4016000\",\n        \"targetSdkVersion\" : \"31\",\n        \"platformBuildVersionName\" : \"12\"\n      },\n      \"appIconInfo\" : {\n        \"appIcon\" : \"df8ec6f8-d966-4181-8928-b82819909c55\"\n      },\n      \"signingInfo\" : {\n        \"signers\" : [ {\n          \"data\" : [ {\n            \"pathInApp\" : \"META-INF/CERT.RSA\",\n            \"certificates\" : [ {\n              \"issuer\" : \"CN=TestIssuer,OU=Eng,O=Org,L=City,ST=ST,C=US\",\n              \"endDate\" : \"2038-10-23T04:41:46.000+00:00\",\n              \"subject\" : \"CN=TestCN,OU=Eng,O=Org,L=City,ST=ST,C=US\",\n              \"startDate\" : \"2011-06-07T04:41:46.000+00:00\",\n              \"signingAlgorithm\" : \"SHA1WITHRSA\"\n            } ]\n          } ],\n          \"schemeVersion\" : \"1\"\n        } ]\n      }\n    }\n  },\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"{{baseUrl}}/v0.1/apps/d02a3a88-2d0d-4ce5-8ccb-c6f1d141adc0/scan_data\"\n    },\n    \"scanData\" : {\n      \"href\" : \"{{baseUrl}}/v0.1/apps/d02a3a88-2d0d-4ce5-8ccb-c6f1d141adc0/scan_data\"\n    }\n  }\n}"},{"id":"834dfa38-ae67-4c84-8f6c-24cf46e4cffb","name":"Get all scan data for an iOS app","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/apps/33ab4f30-18d3-44c1-8b0b-8f7815c15f34/scan_data"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n  \"id\" : \"c585e63b-5452-4c22-a86a-409922accc60\",\n  \"audit\" : {\n    \"createdBy\" : \"04eaca09-2348-4cb9-b272-291a88cb356f\",\n    \"createdDate\" : \"2023-11-21T19:00:13.408129\",\n    \"modifiedBy\" : \"04eaca09-2348-4cb9-b272-291a88cb356f\",\n    \"modifiedDate\" : \"2023-11-21T19:00:13.408129\"\n  },\n  \"scanData\" : {\n    \"IOS_BASIC\" : {\n      \"metaInfo\" : {\n        \"appName\" : \"Compass\",\n        \"bundleId\" : \"com.bluecedar.compass\",\n        \"appVersion\" : \"0.0.0\",\n        \"sdkVersion\" : \"21A325\",\n        \"appVersionCode\" : \"c0b015b\",\n        \"targetSdkVersion\" : \"10.0\",\n        \"platformBuildVersionName\" : \"21A325\"\n      },\n      \"appIconInfo\" : {\n        \"appIcon\" : \"7bacbce7-71cd-49a6-a624-6e4eb956b7c7\"\n      },\n      \"signingInfo\" : {\n        \"entitlements\" : {\n          \"get-task-allow\" : true,\n          \"application-identifier\" : \"55U2ZUPGDH.com.bluecedar.compass\",\n          \"com.apple.developer.team-identifier\" : \"55U2ZUPGDH\"\n        },\n        \"bundleSignature\" : \"????\",\n        \"provisioningProfileState\" : \"FOUND\"\n      }\n    }\n  },\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"{{baseUrl}}/v0.1/apps/33ab4f30-18d3-44c1-8b0b-8f7815c15f34/scan_data\"\n    },\n    \"scanData\" : {\n      \"href\" : \"{{baseUrl}}/v0.1/apps/33ab4f30-18d3-44c1-8b0b-8f7815c15f34/scan_data\"\n    }\n  }\n}"}],"_postman_id":"fc26d1cc-436f-432e-9fc3-171e8e97c1da"}],"id":"310a7236-f803-4938-85a4-1716015f0254","description":"<p>Read-only API to get all information about an app that was retrived from a Blue Cedar scan.</p>\n","_postman_id":"310a7236-f803-4938-85a4-1716015f0254","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}}},{"name":"Schema","item":[{"name":"Get App JSON schema","id":"409efa87-1f83-4786-9e0c-0d8ebc03d246","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/schema/apps","description":"<p>This request retrieves the JSON schema for /apps apis.</p>\n","urlObject":{"path":["v0.1","schema","apps"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"0080d77c-437e-4956-8450-622ba43bd9eb","name":"Successful Response","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/schema/apps"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"$schema\": \"https://json-schema.org/draft/2019-09/schema\",\n    \"$defs\": {\n        \"Audit\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"createdBy\": {\n                    \"type\": \"string\",\n                    \"format\": \"uuid\"\n                },\n                \"createdDate\": {\n                    \"type\": \"string\",\n                    \"format\": \"date-time\"\n                },\n                \"modifiedBy\": {\n                    \"type\": \"string\",\n                    \"format\": \"uuid\"\n                },\n                \"modifiedDate\": {\n                    \"type\": \"string\",\n                    \"format\": \"date-time\"\n                }\n            }\n        },\n        \"JsonNode\": {\n            \"type\": \"object\"\n        }\n    },\n    \"type\": \"object\",\n    \"properties\": {\n        \"appIconStorageRef\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"App icon storage ref\",\n            \"readOnly\": true\n        },\n        \"appInternalVersion\": {\n            \"type\": \"string\",\n            \"title\": \"Scanned Internal App Version\",\n            \"readOnly\": true\n        },\n        \"audit\": {\n            \"$ref\": \"#/$defs/Audit\",\n            \"title\": \"Audit\"\n        },\n        \"id\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Resource Identifier\",\n            \"readOnly\": true\n        },\n        \"importDetailsId\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Import details id\",\n            \"readOnly\": true\n        },\n        \"keystoreDetails\": {\n            \"$ref\": \"#/$defs/JsonNode\",\n            \"title\": \"Keystore details\",\n            \"readOnly\": true\n        },\n        \"mappingFileRef\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Mapping file ref\",\n            \"readOnly\": true\n        },\n        \"organizationId\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Organization id\",\n            \"readOnly\": true\n        },\n        \"packageName\": {\n            \"type\": \"string\",\n            \"title\": \"Package name\",\n            \"readOnly\": true\n        },\n        \"platform\": {\n            \"type\": \"string\",\n            \"enum\": [\n                \"ANDROID\",\n                \"IOS\"\n            ],\n            \"title\": \"App Platform\",\n            \"readOnly\": true\n        },\n        \"scanData\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"audit\": {\n                    \"$ref\": \"#/$defs/Audit\",\n                    \"title\": \"Audit\"\n                },\n                \"id\": {\n                    \"type\": \"string\",\n                    \"format\": \"uuid\"\n                },\n                \"scanData\": {\n                    \"$ref\": \"#/$defs/JsonNode\",\n                    \"type\": \"object\"\n                }\n            },\n            \"title\": \"Details acquired from app scan\",\n            \"readOnly\": true\n        },\n        \"state\": {\n            \"type\": \"string\",\n            \"enum\": [\n                \"PENDING_UPLOAD\",\n                \"UPLOAD_FAILED\",\n                \"UPLOADED\",\n                \"SCAN_IN_PROGRESS\",\n                \"SCAN_FAILED\",\n                \"COMPLETE\"\n            ],\n            \"title\": \"Current App State\",\n            \"readOnly\": true\n        },\n        \"storageRef\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Storage ref\"\n        },\n        \"bundleId\": {\n            \"type\": \"string\",\n            \"title\": \"Bundle id\",\n            \"readOnly\": true\n        },\n        \"entitlements\": {\n            \"$ref\": \"#/$defs/JsonNode\",\n            \"title\": \"Entitlements\",\n            \"readOnly\": true\n        },\n        \"provisioningProfileState\": {\n            \"type\": \"string\",\n            \"enum\": [\n                \"UNDETERMINED\",\n                \"NOTFOUND\",\n                \"FOUND\"\n            ],\n            \"title\": \"Provisioning profile state\",\n            \"readOnly\": true\n        }\n    },\n    \"required\": [\n        \"storageRef\"\n    ],\n    \"title\": \"App Schema\"\n}"}],"_postman_id":"409efa87-1f83-4786-9e0c-0d8ebc03d246"}],"id":"186e1909-e4a9-4bbd-a2aa-9c82855ca320","_postman_id":"186e1909-e4a9-4bbd-a2aa-9c82855ca320","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}}},{"name":"Upload an app","event":[{"listen":"test","script":{"id":"9b4c3de2-8755-49b2-94ac-87d4bed247f2","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"3ec97e1e-5ac8-43c3-8e51-babb8011c87c","exec":[""],"type":"text/javascript"}}],"id":"a884bcc2-9388-4ca3-a45d-d7712892385d","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","description":"<p>App to upload to the app folder (required)</p>\n","value":null},{"key":"appFolderId","value":"{{appFolderId}}","description":"<p><code>Optional</code> - additionally associate this <code>app</code> to an app folder</p>\n","type":"text"},{"key":"appFolderId","value":"{{appFolderId}}","description":"<p><code>Optional</code> - associate the <code>app</code> being uploaded to another app folder. Provide as many <code>appFolderId</code>s as desired</p>\n","type":"text"}]},"url":"{{baseUrl}}/v0.1/apps","description":"<p>Upload an app. Optionally specify one or more app folder IDs to associate this app to the specified app folder(s) during upload.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","apps"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"a7b5b26f-2d7a-412d-9665-d61e8a4afef2","name":"Successful Response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"multipart/form-data"}],"body":{"mode":"formdata","formdata":[{"key":"file","description":"App to upload","type":"file","value":null}]},"url":"{{baseUrl}}/v0.1/apps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T16:35:27.222524\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n    },\n    \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n    \"state\": \"UPLOADED\",\n    \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\"\n}"},{"id":"67136245-e2eb-4e03-b849-ef842ef32e80","name":"Upload an app and associate to an app folder","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"multipart/form-data"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","description":"App to upload to the app folder","value":null},{"key":"appFolderId","value":"{{appFolderId}}","description":"Associate the app to this app folder","type":"text"}]},"url":"{{baseUrl}}/v0.1/apps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T16:35:27.222524\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n    },\n    \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n    \"state\": \"UPLOADED\",\n    \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db\"\n        },\n        \"apps\": {\n            \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db\"\n        }\n    }\n}"},{"id":"4c268f38-cc16-4073-972c-6541d4000d2c","name":"Upload an app and associate to multiple app folders","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"multipart/form-data"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","description":"App to upload to the app folder","value":null},{"key":"appFolderId","value":"{{appFolderId}}","description":"Associate the app to this app folder","type":"text"},{"key":"appFolderId","value":"{{appFolderId}}","description":"Associate the app to another app folder","type":"text"}]},"url":"{{baseUrl}}/v0.1/apps"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T16:35:27.222524\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n    },\n    \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n    \"state\": \"UPLOADED\",\n    \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db\"\n        },\n        \"apps\": {\n            \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db\"\n        }\n    }\n}"},{"id":"f64df8b5-0706-4895-b396-8a52ea8cac30","name":"Upload a file with an unsupported app type","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","description":"App to upload to the app folder","src":"/Users/kyle/Downloads/invalid-app.ipa"}]},"url":"{{baseUrl}}/v0.1/apps"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Invalid file in request\",\n    \"code\": 80034,\n    \"requestId\": \"6a57391f-7956-4ea4-977b-5d1ef21b2236\"\n}"},{"id":"a674d130-9d79-4756-a516-283c482414be","name":"Error response - missing file in body","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","description":"App to upload to the app folder","value":null}]},"url":"{{baseUrl}}/v0.1/apps"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"No app file provided\",\n    \"requestId\": \"6a72ddbe-d72f-41cd-8222-735cbf1380bc\"\n}"}],"_postman_id":"a884bcc2-9388-4ca3-a45d-d7712892385d"},{"name":"Retrieve all apps","event":[{"listen":"test","script":{"id":"9b4c3de2-8755-49b2-94ac-87d4bed247f2","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"3ec97e1e-5ac8-43c3-8e51-babb8011c87c","exec":[""],"type":"text/javascript"}}],"id":"5d5ea9cd-c167-479a-aa7f-2ab9e5af4654","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/apps","description":"<p>Retrieve attributes of all apps.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","apps"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"39615db3-0ca1-451c-99d5-02377c5e3cca","name":"Successful Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/v0.1/apps"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"elements\": [\n        {\n            \"id\": \"42bc2c64-bdb0-4e73-bafe-b52d3bcd9e1a\",\n            \"organizationId\": \"a525075e-87f5-4a65-8ae1-76885a1e37ec\",\n            \"storageRef\": \"2378302b-1621-48a4-8376-025f2abf2f02\",\n            \"state\": \"PENDING_UPLOAD\",\n            \"audit\": {\n                \"createdBy\": \"95d2a792-90d8-4971-a1a0-6deadebb78dd\",\n                \"createdDate\": \"2023-03-28T18:40:34.169456\",\n                \"modifiedBy\": \"95d2a792-90d8-4971-a1a0-6deadebb78dd\",\n                \"modifiedDate\": \"2023-03-28T18:40:34.169456\"\n            },\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/42bc2c64-bdb0-4e73-bafe-b52d3bcd9e1a\"\n                },\n                \"apps\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/42bc2c64-bdb0-4e73-bafe-b52d3bcd9e1a\"\n                },\n                \"storage\": {\n                    \"href\": \"{{baseUrl}}/v0.1/storage/2378302b-1621-48a4-8376-025f2abf2f02\"\n                },\n                \"scanData\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/42bc2c64-bdb0-4e73-bafe-b52d3bcd9e1a/scan_data/40b5d70c-38cc-42b2-9e7c-e413206759ad\"\n                }\n            }\n        },\n        {\n            \"id\": \"52b9de8b-f678-481b-ada9-17c9a7f213a7\",\n            \"organizationId\": \"a525075e-87f5-4a65-8ae1-76885a1e37ec\",\n            \"storageRef\": \"10f59932-a924-41e1-a892-a0d1184d190e\",\n            \"state\": \"PENDING_UPLOAD\",\n            \"audit\": {\n                \"createdBy\": \"95d2a792-90d8-4971-a1a0-6deadebb78dd\",\n                \"createdDate\": \"2023-03-28T18:41:38.007277\",\n                \"modifiedBy\": \"95d2a792-90d8-4971-a1a0-6deadebb78dd\",\n                \"modifiedDate\": \"2023-03-28T18:41:38.007277\"\n            },\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/52b9de8b-f678-481b-ada9-17c9a7f213a7\"\n                },\n                \"apps\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/52b9de8b-f678-481b-ada9-17c9a7f213a7\"\n                },\n                \"storage\": {\n                    \"href\": \"{{baseUrl}}/v0.1/storage/10f59932-a924-41e1-a892-a0d1184d190e\"\n                },\n                \"scanData\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/52b9de8b-f678-481b-ada9-17c9a7f213a7/scan_data/679660e6-e804-4fe8-b25b-f7a146174656\"\n                }\n            }\n        }\n    ],\n    \"page\": 1,\n    \"size\": 2,\n    \"total\": 2,\n    \"requestId\": \"88daf8c2-1cd3-4454-9c90-b002e8332a5e\"\n}"},{"id":"7641f29e-8d5d-48dc-bf9e-89b566a97ae3","name":"Successful Response - No Apps","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/v0.1/apps"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"elements\": [],\n    \"page\": 1,\n    \"size\": 20,\n    \"total\": 0,\n    \"requestId\": \"88daf8c2-1cd3-4454-9c90-b002e8332a5e\"\n}"},{"id":"ec4812ae-29a4-48bc-a4bf-c940380bae30","name":"Retrieve apps for a specific platform","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/v0.1/apps?platform=android","host":["{{baseUrl}}"],"path":["v0.1","apps"],"query":[{"key":"platform","value":"android"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"elements\": [\n        {\n            \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n            \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n            \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n            \"audit\": {\n                \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n                \"createdDate\": \"2022-07-18T16:35:27.222524\",\n                \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n                \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n            },\n            \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n            \"appInternalVersion\": \"4.9.0\",\n            \"platform\": \"ANDROID\",\n            \"state\": \"COMPLETE\",\n            \"keystoreDetails\": {\n                \"signers\": [\n                    {\n                        \"schemeVersion\": \"1\",\n                        \"data\": [\n                            {\n                                \"pathInApp\": \"META-INF/CERT.RSA\",\n                                \"certificates\": [\n                                    {\n                                        \"signingAlgorithm\": \"SHA1WITHRSA\",\n                                        \"startDate\": 1307421706000,\n                                        \"endDate\": 2171421706000,\n                                        \"subject\": \"CN=TestCN,OU=Eng,O=Org,L=City,ST=ST,C=US\",\n                                        \"issuer\": \"CN=TestIssuer,OU=Eng,O=Org,L=City,ST=ST,C=US\"\n                                    }\n                                ]\n                            }\n                        ]\n                    }\n                ]\n            },\n            \"mappingFileRef\": \"ef6f26bf-f377-427d-a390-131b2413efd5\",\n            \"packageName\": \"com.acme.app\",\n            \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n            \"_links\": {\n                \"storage\": {\n                    \"href\": \"{{baseUrl}}/v0.1/storage/a8c05472-b6f0-4a68-831f-3531d996c1aa\"\n                },\n                \"scanData\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db/scan_data/e7481ce6-f8f7-45e0-ba12-9c5971ecdafa\"\n                }\n            }\n        },\n        {\n            \"id\": \"d3fac74a-1592-456f-a55e-f2378cac8fef\",\n            \"organizationId\": \"eeec3003-0099-4eb2-8e3f-b1b70f37802c\",\n            \"appInternalVersion\": \"4.17.0-e9f70ab\",\n            \"storageRef\": \"98113ef6-c08b-4130-b7ba-1ead249e25cb\",\n            \"state\": \"COMPLETE\",\n            \"platform\": \"ANDROID\",\n            \"appIconStorageRef\": \"b91b6a8f-aa5b-489c-b85e-3dd744a752c6\",\n            \"packageName\": \"com.bluecedar.compass\",\n            \"keystoreDetails\": {\n                \"signers\": [\n                    {\n                        \"data\": [\n                            {\n                                \"pathInApp\": \"META-INF/CERT.RSA\",\n                                \"certificates\": [\n                                    {\n                                        \"issuer\": \"CN=Blue Cedar AppLock,OU=Eng,O=Blue Cedar,L=San Francisco,ST=CA,C=US\",\n                                        \"endDate\": 2171421706000,\n                                        \"subject\": \"CN=Blue Cedar AppLock,OU=Eng,O=Blue Cedar,L=San Francisco,ST=CA,C=US\",\n                                        \"startDate\": 1307421706000,\n                                        \"signingAlgorithm\": \"SHA1WITHRSA\"\n                                    }\n                                ]\n                            }\n                        ],\n                        \"schemeVersion\": \"1\"\n                    }\n                ]\n            },\n            \"audit\": {\n                \"createdBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"createdDate\": \"2023-10-20T20:46:36.379457\",\n                \"modifiedBy\": \"04eaca09-2348-4cb9-b272-291a88cb356f\",\n                \"modifiedDate\": \"2023-10-20T20:46:41.72425\"\n            },\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"{{baseUrl}}/v0.1/androidApps/d3fac74a-1592-456f-a55e-f2378cac8fef\"\n                },\n                \"storage\": {\n                    \"href\": \"{{baseUrl}}/v2/storage/98113ef6-c08b-4130-b7ba-1ead249e25cb\"\n                },\n                \"apps\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/d3fac74a-1592-456f-a55e-f2378cac8fef\"\n                },\n                \"scanData\": {\n                    \"href\": \"{{baseUrl}}/v0.1/androidApps/d3fac74a-1592-456f-a55e-f2378cac8fef/scan_data\"\n                }\n            }\n        }\n    ],\n    \"page\": 1,\n    \"size\": 20,\n    \"total\": 2,\n    \"requestId\": \"88daf8c2-1cd3-4454-9c90-b002e8332a5e\"\n}"},{"id":"39e7c222-6535-44eb-bab5-f3f7cdd48ca5","name":"Retrieve apps with a specific version","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/v0.1/apps?appInternalVersion=4.9.0","host":["{{baseUrl}}"],"path":["v0.1","apps"],"query":[{"key":"appInternalVersion","value":"4.9.0"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"elements\": [\n        {\n            \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n            \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n            \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n            \"audit\": {\n                \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n                \"createdDate\": \"2022-07-18T16:35:27.222524\",\n                \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n                \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n            },\n            \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n            \"appInternalVersion\": \"4.9.0\",\n            \"platform\": \"ANDROID\",\n            \"state\": \"COMPLETE\",\n            \"keystoreDetails\": {\n                \"signers\": [\n                    {\n                        \"schemeVersion\": \"1\",\n                        \"data\": [\n                            {\n                                \"pathInApp\": \"META-INF/CERT.RSA\",\n                                \"certificates\": [\n                                    {\n                                        \"signingAlgorithm\": \"SHA1WITHRSA\",\n                                        \"startDate\": 1307421706000,\n                                        \"endDate\": 2171421706000,\n                                        \"subject\": \"CN=TestCN,OU=Eng,O=Org,L=City,ST=ST,C=US\",\n                                        \"issuer\": \"CN=TestIssuer,OU=Eng,O=Org,L=City,ST=ST,C=US\"\n                                    }\n                                ]\n                            }\n                        ]\n                    }\n                ]\n            },\n            \"mappingFileRef\": \"ef6f26bf-f377-427d-a390-131b2413efd5\",\n            \"packageName\": \"com.acme.app\",\n            \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n            \"_links\": {\n                \"storage\": {\n                    \"href\": \"{{baseUrl}}/v0.1/storage/a8c05472-b6f0-4a68-831f-3531d996c1aa\"\n                },\n                \"scanData\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db/scan_data/e7481ce6-f8f7-45e0-ba12-9c5971ecdafa\"\n                }\n            }\n        }\n    ],\n    \"page\": 1,\n    \"size\": 20,\n    \"total\": 1,\n    \"requestId\": \"88daf8c2-1cd3-4454-9c90-b002e8332a5e\"\n}"},{"id":"237eb6b0-bb8f-42e1-8e38-3ecb72d31ff1","name":"Retrieve apps in a specific app folder","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/v0.1/apps?appFolderId=d1d1f764-2bdf-4317-9df5-c678f1c0b49b","host":["{{baseUrl}}"],"path":["v0.1","apps"],"query":[{"key":"appFolderId","value":"d1d1f764-2bdf-4317-9df5-c678f1c0b49b"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"elements\": [\n        {\n            \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n            \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n            \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n            \"audit\": {\n                \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n                \"createdDate\": \"2022-07-18T16:35:27.222524\",\n                \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n                \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n            },\n            \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n            \"appInternalVersion\": \"4.9.0\",\n            \"platform\": \"ANDROID\",\n            \"state\": \"COMPLETE\",\n            \"keystoreDetails\": {\n                \"signers\": [\n                    {\n                        \"schemeVersion\": \"1\",\n                        \"data\": [\n                            {\n                                \"pathInApp\": \"META-INF/CERT.RSA\",\n                                \"certificates\": [\n                                    {\n                                        \"signingAlgorithm\": \"SHA1WITHRSA\",\n                                        \"startDate\": 1307421706000,\n                                        \"endDate\": 2171421706000,\n                                        \"subject\": \"CN=TestCN,OU=Eng,O=Org,L=City,ST=ST,C=US\",\n                                        \"issuer\": \"CN=TestIssuer,OU=Eng,O=Org,L=City,ST=ST,C=US\"\n                                    }\n                                ]\n                            }\n                        ]\n                    }\n                ]\n            },\n            \"mappingFileRef\": \"ef6f26bf-f377-427d-a390-131b2413efd5\",\n            \"packageName\": \"com.acme.app\",\n            \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n            \"_links\": {\n                \"storage\": {\n                    \"href\": \"{{baseUrl}}/v0.1/storage/a8c05472-b6f0-4a68-831f-3531d996c1aa\"\n                },\n                \"scanData\": {\n                    \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db/scan_data/e7481ce6-f8f7-45e0-ba12-9c5971ecdafa\"\n                }\n            }\n        }\n    ],\n    \"page\": 1,\n    \"size\": 20,\n    \"total\": 1,\n    \"requestId\": \"88daf8c2-1cd3-4454-9c90-b002e8332a5e\"\n}"},{"id":"0d97d57c-890a-4215-baf9-337c75f00b43","name":"Retrieve apps sorted descending by creation date","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/v0.1/apps?sort=createdDate,desc","host":["{{baseUrl}}"],"path":["v0.1","apps"],"query":[{"key":"sort","value":"createdDate,desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"TODO after ADS-79 is fixed"}],"_postman_id":"5d5ea9cd-c167-479a-aa7f-2ab9e5af4654"},{"name":"Retrieve an app","event":[{"listen":"test","script":{"id":"9b4c3de2-8755-49b2-94ac-87d4bed247f2","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"3ec97e1e-5ac8-43c3-8e51-babb8011c87c","exec":[""],"type":"text/javascript"}}],"id":"5aa3cacb-4683-4092-8882-555250f237cd","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/apps/{{appId}}","description":"<p>Retrieve attributes of an app.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","apps","{{appId}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"85f66a1d-02d2-4520-a62c-d3b14ff04415","name":"Successful Android Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d388a87b-1465-4a69-87e6-628c6d77b2db\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T16:35:27.222524\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n    },\n    \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n    \"appInternalVersion\": \"4.9.0\",\n    \"platform\": \"ANDROID\", // See \"Apps\" collection description for possible platform values.\n    \"state\": \"COMPLETE\", // See \"Apps\" collection description for possible state values.\n    \"keystoreDetails\": {\n        \"signers\": [\n            {\n                \"schemeVersion\": \"1\",\n                \"data\": [\n                    {\n                        \"pathInApp\": \"META-INF/CERT.RSA\",\n                        \"certificates\": [\n                            {\n                                \"signingAlgorithm\": \"SHA1WITHRSA\",\n                                \"startDate\": 1307421706000,\n                                \"endDate\": 2171421706000,\n                                \"subject\": \"CN=TestCN,OU=Eng,O=Org,L=City,ST=ST,C=US\",\n                                \"issuer\": \"CN=TestIssuer,OU=Eng,O=Org,L=City,ST=ST,C=US\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"mappingFileRef\": \"ef6f26bf-f377-427d-a390-131b2413efd5\",\n    \"packageName\": \"com.acme.app\",\n    \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n    \"_links\": {\n        \"storage\": {\n            \"href\": \"{{baseUrl}}/v0.1/storage/a8c05472-b6f0-4a68-831f-3531d996c1aa\"\n        },\n        \"scanData\": {\n            \"href\": \"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db/scan_data/e7481ce6-f8f7-45e0-ba12-9c5971ecdafa\"\n        }\n    }\n}"},{"id":"48fa37eb-7a69-4694-97ea-4520d129bf3e","name":"Successful iOS Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/v0.1/apps/0c1ebd6b-2c92-408f-91f3-736a1f3d5d1c"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"0c1ebd6b-2c92-408f-91f3-736a1f3d5d1c\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T16:35:27.222524\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T16:35:27.222524\"\n    },\n    \"iconStorageRef\": \"2bb6e567-f89b-4e64-af38-ec237e9279f4\",\n    \"appInternalVersion\": \"4.9.0\",\n    \"platform\": \"IOS\",\n    \"state\": \"COMPLETE\",\n    \"bundleId\": \"com.acme.app\",\n    \"provisioningProfileState\": \"FOUND\",\n    \"entitlements\": {},\n    \"storageRef\": \"a8c05472-b6f0-4a68-831f-3531d996c1aa\",\n    \"_links\": {\n        \"storage\": {\n            \"href\": \"{{baseUrl}}/v0.1/storage/a8c05472-b6f0-4a68-831f-3531d996c1aa\"\n        },\n        \"scanData\": {\n            \"href\": \"{{baseUrl}}/v0.1/apps/0c1ebd6b-2c92-408f-91f3-736a1f3d5d1c/scan_data/e7481ce6-f8f7-45e0-ba12-9c5971ecdafa\"\n        }\n    }\n}"}],"_postman_id":"5aa3cacb-4683-4092-8882-555250f237cd"},{"name":"Delete an app","event":[{"listen":"test","script":{"id":"6d21f775-8c9f-494f-9e0f-4a95c197875c","exec":[""],"type":"text/javascript"}}],"id":"a0c213ed-9350-45a9-8865-b351695b4ad1","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/apps/{{appId}}","description":"<p>Delete an app. When deleting an app:</p>\n<ul>\n<li>The app is removed from any associated app folders</li>\n<li>All <code>associated_files</code> for this app will be removed and deleted.</li>\n<li>The app will be deleted from storage.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","apps","{{appId}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"c241046d-8647-4ea6-b8aa-b70c6bbb221f","name":"Successful Response","originalRequest":{"method":"DELETE","header":[{"key":"X-Authorization","value":"Bearer {{accessToken}}"}],"url":"{{baseUrl}}/v0.1/apps/d388a87b-1465-4a69-87e6-628c6d77b2db"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"a0c213ed-9350-45a9-8865-b351695b4ad1"}],"id":"8f65fb6c-7340-43e2-a3d1-39408a0be405","description":"<p>This API is used to upload apps or app bundles and manipulate attributes of those apps.</p>\n<p>The Platform supports the following app types for upload:</p>\n<ul>\n<li>Android APKs</li>\n<li>iOS IPAs</li>\n</ul>\n<h4 id=\"filtering--sorting\">Filtering &amp; Sorting</h4>\n<p>See top level API description for more info on filtering &amp; sorting. The Apps API supports the following filter and sort keys:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter key</th>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>appInternalVersion</td>\n<td>version string to filter</td>\n<td>Returns all apps with the specified version</td>\n</tr>\n<tr>\n<td>platform</td>\n<td><code>ANDROID</code> or <code>IOS</code></td>\n<td>Return all apps with specified platform</td>\n</tr>\n<tr>\n<td>state</td>\n<td>state string to filter</td>\n<td>Returns all apps in the specified state. See below for possible state values</td>\n</tr>\n<tr>\n<td>android.packageName</td>\n<td>package name of the Android app to filter</td>\n<td>Returns all Android apps with the specified package name</td>\n</tr>\n<tr>\n<td>ios.bundleId</td>\n<td>bundle ID of the iOS app to filter</td>\n<td>Returns all iOS apps with the specified bundle ID</td>\n</tr>\n<tr>\n<td>appFolderId</td>\n<td>app folder resource ID</td>\n<td>Returns all apps associated to the specified app folder (filtering only)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"app-states\">App States</h4>\n<p>During an import, an app will go through multiple asyncrounous operations. The <code>state</code> field describes the current stage of the import process. The table below describes the possible states:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>State</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>PENDING_UPLOAD</td>\n<td>An app entry has been created and the file upload is in progress</td>\n</tr>\n<tr>\n<td>UPLOAD_FAILED</td>\n<td>An app entry has been created and the file upload attempted. The file upload failed</td>\n</tr>\n<tr>\n<td>UPLOADED</td>\n<td>The app entry has been created along with a successful file upload</td>\n</tr>\n<tr>\n<td>SCAN_IN_PROGRESS</td>\n<td>A scan of the app is in progress</td>\n</tr>\n<tr>\n<td>SCAN_FAILED</td>\n<td>A scan of the app failed</td>\n</tr>\n<tr>\n<td>COMPLETE</td>\n<td>The app has been successfully created and scanned</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"8f65fb6c-7340-43e2-a3d1-39408a0be405","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}}},{"name":"App Folders","item":[{"name":"Schema","item":[{"name":"Get App Folder JSON schema","id":"1c4b562b-a0d2-477a-b789-b698b4894bb2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/schema/app_folders","description":"<p>This request retrieves the JSON schema for /app_folders apis.</p>\n","urlObject":{"path":["v0.1","schema","app_folders"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"86ab99a7-bd99-445d-a5d0-d38d160e7a01","name":"Successful Response","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/schema/app_folders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"$schema\": \"https://json-schema.org/draft/2019-09/schema\",\n    \"type\": \"object\",\n    \"properties\": {\n        \"appMetrics\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"apps\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"platformsAvailable\": {\n                            \"type\": \"array\",\n                            \"items\": {\n                                \"type\": \"string\"\n                            }\n                        },\n                        \"total\": {\n                            \"type\": \"integer\",\n                            \"format\": \"int32\"\n                        }\n                    }\n                },\n                \"totalByPlatform\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"android\": {\n                            \"type\": \"integer\",\n                            \"format\": \"int32\"\n                        },\n                        \"ios\": {\n                            \"type\": \"integer\",\n                            \"format\": \"int32\"\n                        }\n                    }\n                }\n            },\n            \"title\": \"App Folder metrics\"\n        },\n        \"audit\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"createdBy\": {\n                    \"type\": \"string\",\n                    \"format\": \"uuid\"\n                },\n                \"createdDate\": {\n                    \"type\": \"string\",\n                    \"format\": \"date-time\"\n                },\n                \"modifiedBy\": {\n                    \"type\": \"string\",\n                    \"format\": \"uuid\"\n                },\n                \"modifiedDate\": {\n                    \"type\": \"string\",\n                    \"format\": \"date-time\"\n                }\n            },\n            \"title\": \"Audit\"\n        },\n        \"description\": {\n            \"type\": \"string\",\n            \"title\": \"Description\"\n        },\n        \"iconStorageRef\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Icon storage ref\"\n        },\n        \"id\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Resource Identifier\",\n            \"readOnly\": true\n        },\n        \"name\": {\n            \"type\": \"string\",\n            \"title\": \"App Folder name\"\n        },\n        \"organizationId\": {\n            \"type\": \"string\",\n            \"format\": \"uuid\",\n            \"title\": \"Organization id\",\n            \"readOnly\": true\n        },\n        \"apps\": {\n            \"title\": \"App Ids\",\n            \"readonly\": true,\n            \"type\": \"array\",\n            \"items\": {\n                \"type\": \"string\",\n                \"format\": \"uuid\"\n            }\n        }\n    },\n    \"required\": [\n        \"name\"\n    ],\n    \"title\": \"App Folder Schema\"\n}"}],"_postman_id":"1c4b562b-a0d2-477a-b789-b698b4894bb2"}],"id":"0df922ef-49ba-44c7-95c2-d382d23785d7","_postman_id":"0df922ef-49ba-44c7-95c2-d382d23785d7","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}}},{"name":"Create an app folder","event":[{"listen":"test","script":{"id":"9b4c3de2-8755-49b2-94ac-87d4bed247f2","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"3ec97e1e-5ac8-43c3-8e51-babb8011c87c","exec":[""],"type":"text/javascript"}}],"id":"b175d5d9-12ba-45b9-8048-a95a2f6f6f85","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"","type":"text","description":"<p>Name of the app folder to be created</p>\n"},{"key":"icon","description":"<p><code>Optional</code> - upload new icon file for the app folder (cannot be used with <code>iconStorageRef</code>)</p>\n","type":"file","value":null},{"key":"iconStorageRef","value":"{{iconId}}","description":"<p><code>Optional</code> - use a storage ID from a previously uploaded image (cannot be used with <code>icon</code>)</p>\n","type":"text"},{"key":"description","value":"{{sampleFolderDescription}}","description":"<p><code>Optional</code> - add a description for this app folder</p>\n","type":"text"},{"key":"appId","value":"{{appId}}","description":"<p><code>Optional</code> - add a previously uploaded app to this folder after creation</p>\n","type":"text"},{"key":"appId","value":"{{appId2}}","description":"<p><code>Optional</code> - any number of previously uploaded apps can be added to the folder</p>\n","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders","description":"<p>Create an app folder. Once the app folder is created, use the <code>/v0.1/apps</code> API to upload and attach apps to the folder. The <code>appId</code> form parameter may also be used at app folder creation time to add any existing apps to the app folder that is being created.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","app_folders"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"a566a836-7892-4e9b-aa03-739bd9fc7029","name":"Successul response","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"AppFolderName","description":"Name of the app folder to be created","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T12:54:09.008901\"\n    },\n    \"name\": \"AppFolderName\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"apps\": [],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 0,\n            \"ios\": 0\n        },\n        \"apps\": {\n            \"total\": 0,\n            \"platformsAvailable\": []\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"2704fb02-f841-413a-ab0b-46b4e3a677c4","name":"Create an app folder and associate previously uploaded apps to the folder","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"AppFolder1","description":"Name of the app folder to be created","type":"text"},{"key":"appId","value":"e7e2349d-f17a-4c55-b989-64072073aac0","description":"App UUID to be added to the folder","type":"text"},{"key":"appId","value":"c8eeb02e-c4c5-40fe-ae1b-269491745379","description":"`Optional` - add any number of uuids to add to this app folder","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T12:54:09.008901\"\n    },\n    \"name\": \"AppFolder1\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 1,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 2,\n            \"platformsAvailable\": [\n                \"android\",\n                \"ios\"\n            ]\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"a30ea097-93e9-4ecb-a2aa-a4246a82b39d","name":"Error response - missing app name","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"","type":"text","description":"Name of the app folder to be created"}]},"url":"{{baseUrl}}/v0.1/app_folders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"name cannot be null\",\n    \"code\": 11007,\n    \"requestId\": \"ce86593f-dd84-4a05-9420-03758f9e6d0c\"\n}"},{"id":"d97de783-392c-4cf0-b794-d3a6fd9a5341","name":"Error response - duplicate app name","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"DuplicateAppFolderName","type":"text","description":"Name of the app folder to be created"}]},"url":"{{baseUrl}}/v0.1/app_folders"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"App folder name exists already.\",\n    \"requestId\": \"faeb453b-44f4-4ea4-9e26-0648e0e9fc82\"\n}"}],"_postman_id":"b175d5d9-12ba-45b9-8048-a95a2f6f6f85"},{"name":"Update an app folder","id":"f5370105-26b7-4b13-b11b-5f6278b0fecf","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"{{newAppName}}","description":"<p><code>Optional</code> - New name for the app folder</p>\n","type":"text"},{"key":"icon","description":"<p><code>Optional</code> - upload new icon file for the app folder (cannot be used with <code>iconStorageRef</code>)</p>\n","type":"file","value":null},{"key":"iconStorageRef","value":"{{iconId}}","description":"<p><code>Optional</code> - use a storage ID from a previously uploaded image (cannot be used with <code>icon</code>)</p>\n","type":"text"},{"key":"description","value":"App Folder Description","description":"<p><code>Optional</code> - add a description for this app folder</p>\n","type":"text"},{"key":"appId","value":"{{appId}}","description":"<p><code>Optional</code> - add an app to the app folder</p>\n","type":"text"},{"key":"appId","value":"{{appId2}}","description":"<p><code>Optional</code> - add an app to the app folder</p>\n","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders/{{appFolderId}}","description":"<p>Update the attributes of an App Folder. Use the <code>appId</code> form param to add a previously uploaded app to this folder. At least 1 parameter is required.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","app_folders","{{appFolderId}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"39f0af4b-4274-4877-ad3b-2039011d284f","name":"Updates an app folder name","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"AppFolder2","description":"New name for the app folder","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-19T17:57:58.980213\"\n    },\n    \"name\": \"AppFolder2\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 1,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 2,\n            \"platformsAvailable\": [\n                \"android\",\n                \"ios\"\n            ]\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"f49679b4-e2d6-49a9-aa80-af5943d0bf1f","name":"Updates an app folder icon with a file","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"icon","description":"New icon for the app folder","type":"file","value":null}]},"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"ae0fff18-d9af-4871-83bb-e599bc52b3f6\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-19T17:57:58.980213\"\n    },\n    \"name\": \"AppFolder2\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 1,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 2,\n            \"platformsAvailable\": [\n                \"android\",\n                \"ios\"\n            ]\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"98559083-34d1-492e-a2e9-0edf73d2585a","name":"Updates an app folder icon with a storage ref","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"iconStorageRef","value":"dabe003f-476c-4d85-9560-1fa544169943","description":"ID of the storage ref","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"ae0fff18-d9af-4871-83bb-e599bc52b3f6\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-19T17:57:58.980213\"\n    },\n    \"name\": \"AppFolder2\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 1,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 2,\n            \"platformsAvailable\": []\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"3b6ca780-501e-4de1-8d15-c837dcfb9631","name":"Updates an app folder description","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"description","description":"New description for the app folder","type":"text","value":"<h1> This is the App description </h1>"}]},"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"ae0fff18-d9af-4871-83bb-e599bc52b3f6\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-19T17:57:58.980213\"\n    },\n    \"name\": \"AppFolder2\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"description\": \"<h1> This is the App description </h1>\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 1,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 2,\n            \"platformsAvailable\": []\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"8d0f2018-ee05-4778-abe0-9401fcf3b2f0","name":"Add an existing app to this app folder","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"appId","description":"App UUID to be associate to the app folder","type":"text","value":"e7e2349d-f17a-4c55-b989-64072073aac0"},{"key":"appId","value":"c8eeb02e-c4c5-40fe-ae1b-269491745379","description":"`Optional` - add any number of app IDs to associate the app to this app folder","type":"text"}]},"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-19T17:57:58.980213\"\n    },\n    \"name\": \"AppFolder2\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 1,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 2,\n            \"platformsAvailable\": []\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"4eb06074-10de-41ba-9e8c-bc1078f4e3e9","name":"Error Response - no body","originalRequest":{"method":"PATCH","header":[],"url":"{{baseUrl}}/v0.1/app_folders/{{appFolderId}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Missing Content-Type\",\n    \"code\": \"20000\",\n    \"requestId\": \"a88b1a81-eecc-4997-a267-b7d139feb053\"\n}"}],"_postman_id":"f5370105-26b7-4b13-b11b-5f6278b0fecf"},{"name":"Get all app folders","event":[{"listen":"test","script":{"id":"63404594-7c24-4928-99b4-cf6a4691a0ff","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"5a089105-71aa-43f3-8a72-b1b750425bdd","exec":[""],"type":"text/javascript"}}],"id":"23f90583-e598-4718-a493-1ac81e4378a5","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/app_folders","description":"<p>Get all created app folders and corresponding attributes including the apps associated to the folders.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","app_folders"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"63315137-6060-49d9-a683-78de7bfa6548","name":"Successful Response","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/app_folders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"elements\": [\n        {\n            \"id\": \"b150225f-5ad5-463b-86e1-8011ffb22b83\",\n            \"audit\": {\n                \"createdBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"createdDate\": \"2022-01-31T22:22:11.531346\",\n                \"modifiedBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"modifiedDate\": \"2022-01-31T22:22:41.074118\"\n            },\n            \"name\": \"AppFolder1\",\n            \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n            \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n            \"description\": \"Description for this folder\",\n            \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\", \"3685e35b-b372-47eb-b139-05bf70504d52\"],\n            \"metrics\": {\n                \"totalByPlatform\": {\n                    \"android\": 2,\n                    \"ios\": 1\n                },\n                \"apps\": {\n                    \"total\": 3,\n                    \"platformsAvailable\": [\n                        \"android\",\n                        \"ios\"\n                    ]\n                }\n            },\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"{{baseUrl}}/v0.1/app_folders/b150225f-5ad5-463b-86e1-8011ffb22b83\"\n                },\n                \"appFolders\": {\n                    \"href\": \"{{baseUrl}}/v0.1/app_folders/b150225f-5ad5-463b-86e1-8011ffb22b83\"\n                }\n            }\n        },\n        {\n            \"id\": \"8b3a20a2-181f-41a4-978b-b7f4d2b29601\",\n            \"audit\": {\n                \"createdBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"createdDate\": \"2022-01-21T22:20:27.936113\",\n                \"modifiedBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"modifiedDate\": \"2022-01-28T16:59:00.170825\"\n            },\n            \"name\": \"AppFolder2\",\n            \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n            \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n            \"description\": \"Description of AppFolder2\",\n            \"apps\": [\"c8eeb02e-c4c5-40fe-ae1b-269491745379\", \"3685e35b-b372-47eb-b139-05bf70504d52\"],\n            \"metrics\": {\n                \"totalByPlatform\": {\n                    \"android\": 2,\n                    \"ios\": 0\n                },\n                \"apps\": {\n                    \"total\": 2,\n                    \"platformsAvailable\": [\n                        \"android\"\n                    ]\n                }\n            },\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"{{baseUrl}}/v0.1/app_folders/8b3a20a2-181f-41a4-978b-b7f4d2b29601\"\n                },\n                \"appFolders\": {\n                    \"href\": \"{{baseUrl}}/v0.1/app_folders/8b3a20a2-181f-41a4-978b-b7f4d2b29601\"\n                }\n            }\n        }\n    ],\n    \"page\": 1,\n    \"size\": 25,\n    \"total\": 2\n}"},{"id":"c9f9b213-f7d7-4c59-81b9-b6cf8a9c7c5f","name":"Successful Response - No App Folders","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/app_folders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"elements\": [],\n    \"page\": 1,\n    \"size\": 25,\n    \"total\": 0\n}"},{"id":"0299655d-18d9-4bfc-926b-ba4984bc287d","name":"Retrieve all app folders with a specific appId","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/v0.1/app_folders?appId=e7e2349d-f17a-4c55-b989-64072073aac0","host":["{{baseUrl}}"],"path":["v0.1","app_folders"],"query":[{"key":"appId","value":"e7e2349d-f17a-4c55-b989-64072073aac0"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"elements\": [\n        {\n            \"id\": \"b150225f-5ad5-463b-86e1-8011ffb22b83\",\n            \"audit\": {\n                \"createdBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"createdDate\": \"2022-01-31T22:22:11.531346\",\n                \"modifiedBy\": \"20d0cee0-84f8-4147-9708-7e91a0262f27\",\n                \"modifiedDate\": \"2022-01-31T22:22:41.074118\"\n            },\n            \"name\": \"AppFolder1\",\n            \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n            \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n            \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\", \"3685e35b-b372-47eb-b139-05bf70504d52\"],\n            \"metrics\": {\n                \"totalByPlatform\": {\n                    \"android\": 2,\n                    \"ios\": 1\n                },\n                \"apps\": {\n                    \"total\": 3,\n                    \"platformsAvailable\": [\n                        \"android\",\n                        \"ios\"\n                    ]\n                }\n            },\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"{{baseUrl}}/v0.1/app_folders/b150225f-5ad5-463b-86e1-8011ffb22b83\"\n                },\n                \"appFolders\": {\n                    \"href\": \"{{baseUrl}}/v0.1/app_folders/b150225f-5ad5-463b-86e1-8011ffb22b83\"\n                }\n            }\n        }\n    ],\n    \"page\": 1,\n    \"size\": 20,\n    \"total\": 5\n}"},{"id":"6b0b150b-6431-4b60-8516-e5178c36bffa","name":"Retrieve all app folders sorting descending by creation date","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/v0.1/app_folders?sort=createdDate,desc","host":["{{baseUrl}}"],"path":["v0.1","app_folders"],"query":[{"key":"sort","value":"createdDate,desc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"TODO after ADS-79 is fixed"}],"_postman_id":"23f90583-e598-4718-a493-1ac81e4378a5"},{"name":"Get a single app folder","event":[{"listen":"test","script":{"id":"63404594-7c24-4928-99b4-cf6a4691a0ff","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"5a089105-71aa-43f3-8a72-b1b750425bdd","exec":[""],"type":"text/javascript"}}],"id":"52cd6f32-ab78-4671-8168-9bcf337d4e6f","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/app_folders/{{appFolderId}}","description":"<p>Get attributes of a specific app folder including the apps associated to the folder.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","app_folders","{{appFolderId}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"74178469-6162-4902-b238-1ca184e01ab5","name":"Successful Response","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e08e6939-e641-4afe-9705-c163ceb55ff8\",\n    \"id\": \"d1d1f764-2bdf-4317-9df5-c678f1c0b49b\",\n    \"audit\": {\n        \"createdBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"createdDate\": \"2022-07-18T12:54:09.008901\",\n        \"modifiedBy\": \"6ee2b185-fce7-4b28-8d27-5c34a6a80a63\",\n        \"modifiedDate\": \"2022-07-18T12:54:12.987536\"\n    },\n    \"name\": \"AppFolder1\",\n    \"organizationId\": \"1afbd765-8000-48e2-bfd1-daf605261610\",\n    \"iconStorageRef\": \"dabe003f-476c-4d85-9560-1fa544169943\",\n    \"description\": \"Description for this folder\",\n    \"apps\": [\"e7e2349d-f17a-4c55-b989-64072073aac0\", \"c8eeb02e-c4c5-40fe-ae1b-269491745379\", \"3685e35b-b372-47eb-b139-05bf70504d52\"],\n    \"metrics\": {\n        \"totalByPlatform\": {\n            \"android\": 2,\n            \"ios\": 1\n        },\n        \"apps\": {\n            \"total\": 3,\n            \"platformsAvailable\": [\"android\", \"ios\"]\n        }\n    },\n    \"_links\": {\n        \"self\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        },\n        \"appFolders\": {\n            \"href\": \"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b\"\n        }\n    }\n}"},{"id":"dffa9a7b-6c14-44f9-a0d4-4f20584957d9","name":"App Folder not found","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/v0.1/app_folders/45c4fc1b-230c-4a7c-8c00-b3135e3651d2"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Resource not found\",\n  \"requestId\": \"f1742fb9-a589-4a22-8dd4-06ffae1f3670\"\n}"}],"_postman_id":"52cd6f32-ab78-4671-8168-9bcf337d4e6f"},{"name":"Delete an app folder","event":[{"listen":"test","script":{"id":"63404594-7c24-4928-99b4-cf6a4691a0ff","exec":[""],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"5a089105-71aa-43f3-8a72-b1b750425bdd","exec":[""],"type":"text/javascript"}}],"id":"1bf0875d-a221-4dc5-b8e3-e62fc1717cf7","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/{{appFolderId}}","description":"<p>Delete an app folder. This will also remove the association of all apps associated to this folder.</p>\n<p>Note - this will not delete the apps associated to this folder. They must be removed indepenently.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","app_folders","{{appFolderId}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"cb1e0c6b-a2dd-4f35-bdd7-ec3bb8166cc5","name":"Successful Response","originalRequest":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""},{"id":"aae92b98-cae3-438c-9d0f-2e0bed935aef","name":"App not found","originalRequest":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/45c4fc1b-230c-4a7c-8c00-b3135e3651d2"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\":\"Resource not found\",\n    \"requestId\":\"8abdfde1-d92c-4c36-a20e-bd1b32cfe6f6\"\n}"}],"_postman_id":"1bf0875d-a221-4dc5-b8e3-e62fc1717cf7"},{"name":"Disassociate an app from an app folder","event":[{"listen":"test","script":{"id":"6d21f775-8c9f-494f-9e0f-4a95c197875c","exec":[""],"type":"text/javascript"}}],"id":"084d93c7-f7fd-4019-bcf4-6a821f59d04b","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/{{appFolderId}}/apps/{{appId}}","description":"<p>Dissassociate an app from an app folder.</p>\n<p>Note - the app will not be deleted and must be removed independently. This API only removes the app from the folder.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}},"urlObject":{"path":["v0.1","app_folders","{{appFolderId}}","apps","{{appId}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"f6927270-c1e6-4327-bdbd-f7e37955420c","name":"Successful Response","originalRequest":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b/apps/e7e2349d-f17a-4c55-b989-64072073aac0"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null},{"id":"1f0ebda8-8dcf-4483-8ee8-d3c0ef4cda9e","name":"App Folder not found","originalRequest":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b/apps/e7e2349d-f17a-4c55-b989-64072073aac0"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Unable to find an app associated with the given app folder\",\n  \"requestId\": \"4e91e0ce-6ab0-4dae-8f80-8f6cdeb1f738\"\n}"},{"id":"9e3980e5-81b5-45f9-8e68-2ab1bab5b9c1","name":"App not found","originalRequest":{"method":"DELETE","header":[],"url":"{{baseUrl}}/v0.1/app_folders/d1d1f764-2bdf-4317-9df5-c678f1c0b49b/apps/e7e2349d-f17a-4c55-b989-64072073aac0"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Unable to find an app associated with the given app folder\",\n  \"requestId\": \"1bcc7ac6-fed5-4c44-8f06-ec106eba2313\"\n}"}],"_postman_id":"084d93c7-f7fd-4019-bcf4-6a821f59d04b"}],"id":"df776bcf-041f-4e70-b5ee-17763d2159c8","description":"<p>An App Folder contains a set of apps with a common workflow config. A previously uploaded app can optionally be associated to the app folder during creation or added later with the PATCH API. The same app can be added to multiple app folders.</p>\n<h4 id=\"sorting\">Sorting</h4>\n<p>Additional attributes for sorting. See top level API description for sorting usage.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Query param</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>Sort by app folder name</td>\n</tr>\n</tbody>\n</table>\n</div><p>For example, to sort all app folders descending by name, send the following request:</p>\n<p><code>GET /v0.1/app_folders?sort=name,desc</code></p>\n<h4 id=\"filtering\">Filtering</h4>\n<p>See top level API description for more info on filtering. The App Folders API supports the following filters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter key</th>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>appId</td>\n<td>UUID of the app</td>\n<td>Return all folders containing the specified <code>appId</code></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"response-apps-attribute\">Response <code>apps</code> attribute</h4>\n<p>The app folders response contains a list of IDs in the <code>apps</code> attribute which correspond to the list of apps associated to this app folder. Only the top 20 IDs are returned, sorted descending by creation date. To get the full list of apps with all the app attributes, use the <code>apps</code> api with the <code>appFolderId</code> query param. For example, to get the first 5 apps with attributes associated to folder <code>9f936b5e-7a1c-4221-b0c8-979909c1aa99</code>, use <code>GET /v0.1/apps?appFolderId=9f936b5e-7a1c-4221-b0c8-979909c1aa99&amp;sort=createdDate,desc</code></p>\n","_postman_id":"df776bcf-041f-4e70-b5ee-17763d2159c8","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f","id":"bb1adc71-011b-451b-9a75-2f34a981932f","name":"Apps v0.1","type":"folder"}}}],"id":"bb1adc71-011b-451b-9a75-2f34a981932f","description":"<p>The following APIs describe how to use apps in the Blue Cedar Platform. These Platform APIs are used for app folders, apps, and files associated with apps.</p>\n<p>All requests are authorized with a Bearer token. An access token must be retrieved first and passed into the <code>Authorization</code> header. For more information obtaining an access token, see the <a href=\"https://api-docs.bluecedar.com/#f13ecd97-b8e7-497a-afbd-ff573e48c20a\">Authorization</a> documentation.</p>\n<h4 id=\"request-ids\">Request IDs</h4>\n<p>Each request will have an associated <code>requestId</code> in the JSON response. Use this <code>requestId</code> with Blue Cedar Support if more information is needed about an error response. See the documentation of a specific request to get more details, but the generic format of a response will contain the requestId:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"requestId\": \"7bfb6c93-781b-42af-bbd3-86790ae0f139\"\n    ...\n}\n\n</code></pre>\n<h4 id=\"paging\">Paging</h4>\n<p>For requests that support paging, add query params to the GET request. The following query params for paging can be used:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Query param</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>The page number of the resource to GET. 1-index based. Default: 1</td>\n</tr>\n<tr>\n<td>size</td>\n<td>The number of items to return in the response for a page. Default: 20</td>\n</tr>\n</tbody>\n</table>\n</div><p>For example, to get page #3 of app folders with a page size of 2 entries, the request would be:<br /><code>GET /v0.1/app_folders?page=3&amp;size=2</code></p>\n<h4 id=\"sorting\">Sorting</h4>\n<p>For requests that support sorting, add query params to the GET request. See detailed API description for any other attributes specific to the API that are allowed for sorting. The following query params for sorting can be used:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Query param</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>createdDate</td>\n<td>Sort response by attribute creation date</td>\n</tr>\n<tr>\n<td>modifiedDate</td>\n<td>Sort response by attribute modification date</td>\n</tr>\n<tr>\n<td>asc</td>\n<td>Sort ascending. Used in combinatation with <code>createdDate</code> or <code>modifiedDate</code>. (default)</td>\n</tr>\n<tr>\n<td>desc</td>\n<td>Sort descending. Used in combinatation with <code>createdDate</code> or <code>modifiedDate</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>For example, to sort all apps ascending by created date, use the following request:</p>\n<p><code>GET /v0.1/apps?sort=createdDate,asc</code></p>\n<p>If no sort params are provided, the default response is sorted descending by <code>createdDate</code></p>\n<h4 id=\"filtering\">Filtering</h4>\n<p>For requests that support filtering, a query param can be used to filter the returned results. Each filter param is distinct to the request. See detailed API description for allowed filters. For example, to get all the app folders that contain an app with id <code>b37fdc9b-7fc8-44fc-ba33-ab9b045e0a58</code>, the request would be:</p>\n<p><code>GET /v0.1/app_folders?appId=b37fdc9b-7fc8-44fc-ba33-ab9b045e0a58</code></p>\n<h4 id=\"file-processing\">File processing</h4>\n<p>The APIs that accept files as part of the request body will accept only a single file. If more than 1 file is sent in the request, only the first file will be processed, and the rest will be ignored. For example, if more than 1 app is sent to the <code>POST /v0.1/apps</code> api, only the first app will be uploaded, and the rest will be ignored. Use multiple requests to upload more than 1 app.</p>\n<h4 id=\"schema\">Schema</h4>\n<p>A request JSON schema is provided via a <code>/v0.1/schema/{resource}</code> URL. The schema conforms to JSON schema draft-04 (<a href=\"https://json-schema.org/draft-04/draft-zyp-json-schema-04\">https://json-schema.org/draft-04/draft-zyp-json-schema-04)</a>. See detailed API descriptions for examples.</p>\n<h4 id=\"general-error-responses\">General Error Responses</h4>\n<p>If a request fails to adhere to proper HTTP, a response status of <code>400</code> will be returned with a detailed error message, if known. For example, any request that missing a required <code>Content-Type</code> header receive the following response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Missing Content-Type\",\n    \"code\": 20000,\n    \"requestId\": \"7bfb6c93-781b-42af-bbd3-86790ae0f139\"\n}\n\n</code></pre>\n<p>Any request with an unknown body parameter will respond with:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Unknown request parameter\",\n    \"requestId\": \"7bfb6c93-781b-42af-bbd3-86790ae0f139\"\n}\n\n</code></pre>\n<p>For a more generic HTTP error, the client will receive the following response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Something went wrong!\",\n    \"requestId\": \"7bfb6c93-781b-42af-bbd3-86790ae0f139\"\n}\n\n</code></pre>\n<p>Please check the HTTP status code of the response along with the JSON to find the cause of the error. Some example response codes are:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>HTTP Status Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Bad Request. Please check your request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Invalid credentials.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Valid credentials were successfully authenticated, but the user is not authorized for the action.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Resource not found. Please check your url and optional resource ID in the url.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error. Please check your request and contact support if needed. Save the <code>requestId</code> from the response to provide to support.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"ce7493d1-4fe5-43bf-ad7a-80f4a5c7845a","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"f8b1b033-d696-4c5b-b3f5-396e51d30689","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"bb1adc71-011b-451b-9a75-2f34a981932f"},{"name":"Authentication","item":[{"name":"Get an authentication token","id":"27253b55-c600-44e0-8ab0-dc50a1b9c7b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"username\": {{username}},\n    \"password\": {{password}}\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2/auth/token","description":"<p>Authenticate to the platform to receive an access token.</p>\n","urlObject":{"path":["v2","auth","token"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"8a9c2b9c-e6b4-4381-9493-0c5fd3611dd0","name":"Successful Response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"username\": \"myuser\",\n    \"password\": \"mysecretpassword\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2/auth/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"accessToken\": \"<accessToken>\",\n    \"refreshToken\": \"<refreshToken>\"\n}"},{"id":"4ce4a2fe-1448-4238-b8c5-d90687557778","name":"Invalid username or password","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"username\": \"testuser\",\n    \"password\": \"invalidPassword\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2/auth/token"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n  \"error\": 401,\n  \"message\": \"Invalid credentials\",\n  \"code\": 12209\n}"}],"_postman_id":"27253b55-c600-44e0-8ab0-dc50a1b9c7b4"},{"name":"Get user authorization endpoint information","id":"4db16289-c501-4d46-9ee4-d4d96330f473","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/v2/auth?username=<username>&redirect_uri=https://platform.bluecedar.com/auth","description":"<p>Get endpoint information for interactive user login to the platform</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"f13ecd97-b8e7-497a-afbd-ff573e48c20a","id":"f13ecd97-b8e7-497a-afbd-ff573e48c20a","name":"Authentication","type":"folder"}},"urlObject":{"path":["v2","auth"],"host":["{{baseUrl}}"],"query":[{"key":"username","value":"<username>"},{"description":{"content":"<p>Optional</p>\n","type":"text/plain"},"key":"redirect_uri","value":"https://platform.bluecedar.com/auth"}],"variable":[]}},"response":[{"id":"9a8f89e9-a43a-4c31-a822-70c4c103c13e","name":"Successful Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/v2/auth?username=testUser&redirect_uri=https://platform.bluecedar.com/auth","host":["{{baseUrl}}"],"path":["v2","auth"],"query":[{"key":"username","value":"testUser"},{"key":"redirect_uri","value":"https://platform.bluecedar.com/auth","description":"Optional"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"username\": \"testUser\",\n    \"authorizationEndpoint\": \"https://platform-auth.bluecedar.com/auth/realms/acme/protocol/openid-connect/auth?client_id=auth-client&redirect_uri=https%3A%2F%2Fplatform.bluecedar.com%2Fauth&response_type=code&scope=openid&login_hint=testUser\",\n    \"tokenEndpoint\": \"https://platform-auth.bluecedar.com/auth/realms/acme/protocol/openid-connect/token\",\n    \"clientId\": \"auth-client\",\n    \"action\": \"idp\"\n}"},{"id":"c938eb63-d97f-459e-aef7-de839330e1dc","name":"Successful Response local authentication","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/v2/auth?username=testUserLocal&redirect_uri=https://platform.bluecedar.com/auth","host":["{{baseUrl}}"],"path":["v2","auth"],"query":[{"key":"username","value":"testUserLocal"},{"key":"redirect_uri","value":"https://platform.bluecedar.com/auth","description":"Optional"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"username\": \"testUserLocal\",\n    \"action\": \"login\"\n}"},{"id":"85b6b203-1acd-40bc-8cfe-f43e2d749a22","name":"Failure Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/v2/auth?username=testUser&redirect_uri=https://platform.bluecedar.com/auth","host":["{{baseUrl}}"],"path":["v2","auth"],"query":[{"key":"username","value":"testUser"},{"key":"redirect_uri","value":"https://platform.bluecedar.com/auth","description":"Optional"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\":500,\n    \"code\":12303\n}"}],"_postman_id":"4db16289-c501-4d46-9ee4-d4d96330f473"}],"id":"f13ecd97-b8e7-497a-afbd-ff573e48c20a","description":"<p>The following APIs describe how to authenticate to the platform and retrieve an access token for authentication to other APIs</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"19df6fcc-9fc9-417d-9d62-158de64f0723","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"51f0cc75-afa6-457b-826d-72f5d5750f28","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"f13ecd97-b8e7-497a-afbd-ff573e48c20a"}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]}},"event":[{"listen":"prerequest","script":{"id":"43394717-6881-4531-a8a6-2e32a22252e7","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"4ae5a2c3-ba18-42ac-a8a8-b0145d0bce1e","type":"text/javascript","exec":[""]}}]}