AppCacheManager
This API is the primary interface to upload new or overwrite existing application cached resources. At the same time, an application in itself contains no resources, is only the relation between an application and an organization (and/or venue) the key where resources are allocated and cached.
API | Description |
---|---|
GET v1/application/cache/{environment}/{orgId}/{appId}/{type} |
Use this method to download a cached resources associated to the app and organization specified. |
GET v1/application/cache/{environment}/{orgId}/{venue}/{appId}/{type} |
Use this method to download a cached resources associated to the app and venue specified. |
GET v1/application/cache/{environment}/{orgId}/{appId}/all |
Use this method to get the list of resources cached for an organization and app relation. |
GET v1/application/cache/{environment}/{orgId}/{venue}/{appId}/all |
Use this method to get the list of resources cached for a venue and app relation. |
POST v1/application/cache/{environment}/{orgId}/{appId}/{type} |
Use this method to upload a cached sqlite database file so you can create a new entry in the list of resources for your application, or update an existing entry. When uploading a database, the system automatically increments the version of the resource, and updates the sqlite database internal version to match the new value. |
POST v1/application/cache/{environment}/{orgId}/{venue}/{appId}/{type} |
Use this method to upload a cached sqlite database file so you can create a new entry in the list of resources for your application, or update an existing entry. When uploading a database, the system automatically increments the version of the resource, and updates the sqlite database internal version to match the new value. |
Application
Manages App Framework Applications
API | Description |
---|---|
GET v1/application/{environment}/{orgId}?queryLevels={queryLevels} |
Returns all applications associated with an org. |
GET v1/application/{environment}/{orgId}/{appId}/details |
Use this method to get an application's details. |
GET v1/application/{environment}/{orgId}/{appId} |
Returns true if the environment, org and app combination exists, false otherwise. |
POST v1/application/{environment}/{orgId} |
Creates or re-enables an App Framework Application. Note that for device type, if none specified, iphone will be automatically assumed. Available device types are iphone, android, when creating an app, make sure to translate into these two types. |
PUT v1/application/{environment}/{orgId}/{appId} |
Use this method to update an application Name, EULA, Platform version or MaaS Access Key and Secret Key. No other application fields can be updated through this method at the moment. |
PUT v1/application/{environment}/{orgId}/{appId}/disable |
Disables an existing MaaS Enabled Application. |
GET v1/application/{environment}/{orgId}/{appId}/settings |
Returns all application settings. |
GET v1/application/button-type/templates?version={version} |
Use this method to get the list of existing button types that can be used as templates to create button types for an application. |
GET v1/application/{environment}/{orgId}/{appId}/button-type |
Use this method to get the list of button types associated to an application. |
GET v1/application/button-type/{id} |
Use this method to get the structure and details of a single button type. |
POST v1/application/{environment}/{orgId}/{appId}/button-type |
Use this method to create a new button type for an application. Button types are global to the application. |
PUT v1/application/button-type/{id} |
Use this method to update an existing button type. |
DELETE v1/application/button-type/{id} |
Use this method to delete a button type. This method will fail to delete if there is at least one dynamic button associated to this button type. |
GET v1/application/content-type/templates |
Use this method to get the list of existing content types that can be used as templates to create new content types for your application. |
GET v1/application/{environment}/{orgId}/{appId}/content-type |
Use this method to get a list of all content types for the provided application id. |
GET v1/application/content-type/{id} |
Use this method to get a single content type. |
POST v1/application/{environment}/{orgId}/{appId}/content-type |
Use this method to create a new content type for your application. |
PUT v1/application/content-type/{id} |
Use this method to update fields of an existing content type. |
DELETE v1/application/content-type/{id} |
Use this method to delete a content type. This method will fail to delete if there is at least one dynamic content element associated to this content type. |
GET v1/application/{environment}/{orgId}/{appId}/fonts |
Returns a list of all application fonts associated to your application. |
GET v1/application/fonts/{id} |
Returns a single application font by its id (this is the application font id, not the font id itself). |
POST v1/application/{environment}/{orgId}/{appId}/fonts |
Use this method to associate a system font with your application. |
DELETE v1/application/fonts/{id} |
Use this method to delete a font. This method will fail to delete if there is at least one dynamic element associated to this font. |
GET v1/application/column-layout |
Use this method to get a list of templates for which to base the creation of new column layouts. |
GET v1/application/{environment}/{orgId}/{appId}/column-layout |
Use this method to get a list of column layouts available for the provided application id. |
GET v1/application/column-layout/{id} |
Use this method to obtain details for the provided column layout id. |
POST v1/application/{environment}/{orgId}/{appId}/column-layout |
Use this method to add a new column layout to the provided application. If the layout already exists it will simply ignore the creation and return the layout matching the one been created. |
PUT v1/application/column-layout/{id} |
Use this method to update fields of an existing column layout. |
DELETE v1/application/column-layout/{id} |
Use this method to delete an existing column layout. |
POST v1/application/{environment}/{orgId}/{appId}/clone?level={level} |
Use this endpoint to create one or more level cloning background tasks. |
Assets
This service endpoint provides access to managing content assets such as folders and files for an organization.
API | Description |
---|---|
GET v1/assets/file/all/{folderId}?sort={sort} |
Use this method to retrieve the complete file list within the provided folder id. |
GET v1/assets/file/{id} |
Use this method to quickly retrieve the information for a single file. |
POST v1/assets/file/{folderId}?name={name}¬es={notes}&tags[0]={tags[0]}&tags[1]={tags[1]} |
Use this method to create and upload a new file into the provided folder id. To call this method please ensure you use "multipart/form-data" MIME type and include your JSon/XML within a field named "fileInfo". |
PUT v1/assets/file/{id}?name={name}&parent={parent}¬es={notes}&tags[0]={tags[0]}&tags[1]={tags[1]} |
Use this method to update the information for the given file id. |
DELETE v1/assets/file/{id} |
Use this method to delete the file specified. |
GET v1/assets/{environment}/{orgId}/folder?includeFiles={includeFiles}&sort={sort} |
Use this method to retrieve the complete folder structure starting from the root for a given company (org). |
GET v1/assets/folder/{folderId}?depth={depth}&includeFiles={includeFiles}&sort={sort} |
Use this method to retrieve a folder structure (excluding files within that folder) up to any level deep. |
POST v1/assets/folder |
Use this endpoint to create a folder for your organization. |
PUT v1/assets/folder/{id} |
Use this method to update the information for a folder. |
DELETE v1/assets/folder/{id} |
Use this method to delete the provided folder id including all its content. |
GET v1/assets/{environment}/{orgId}/file/search?text={text}&page={page}&itemsPerPage={itemsPerPage}&sort={sort} |
Searches for all exact or partial occurrences of the text sent, files using file name as its search pattern. Note that "page" and "items per page" will always default to 0 for page, and 20 for items per page if no values are supplied or the values make no sense. Page is zero based where 0 = the first page. Calling logic should compare the amount of items return versus items per page to determine if the end of the search has been reached. |
GET v1/assets/file/extensions |
No documentation available. |
Company
Allows the management of App Framework Companies (Organization equivalent), including the creation, updates and removal of these entities.
API | Description |
---|---|
GET v1/company/maas/exists?orgId={orgId}&environment={environment} |
Returns true if the org and environment exist, false otherwise. |
GET v1/company/maas/uuid?orgId={orgId}&environment={environment} |
Returns the company UUID associated to an org / environment combination. |
POST v1/company |
Creates a company based on a MaaS Org Model and returns the created company structure. |
GET v1/company/{environment}/{orgId} |
Returns a company associated with an org id and its environment. |
GET v1/company/{environment}/{orgId}/settings |
Returns a list of settings associated to an Organization (Company) |
POST v1/company/{environment}/{orgId}/settings |
Use this method to add custom settings to an org. |
PUT v1/company/settings/{id} |
Use this method to update the value of a specific setting. It can also be used to update the display name or system id of a setting optionally where if these attributes are not found, or empty, they will not be updated. Make sure you always send a value for "value" as this property will always be updated even when not present which will be the equivalent to been (NULL). |
DynamicPages
This API Controller provides access to manage dynamic content pages, page elements and much more.
API | Description |
---|---|
GET v1/pages/{environment}/{orgId}/{appId}?layer={layer}&pageIndex={pageIndex}&pageSize={pageSize}&order={order}&sort={sort} |
Returns all dynamic pages for the specified application at the organization level, or nested content level (if provided). Paging can be suppressed by passing in a value less than zero for pageSize. If pageSize is not provided, it will default to 20. Is important to note that by default the results are order by page name in ascending order. |
GET v1/pages/{environment}/{orgId}/{appId}/search?searchText={searchText}&layer={layer}&pageIndex={pageIndex}&pageSize={pageSize}&order={order}&sort={sort} |
Searches through dynamic pages by comparing page title to the text provided, for the specified application at the organization level, or nested content layer (if provided). Paging can be suppressed by passing in a value less than zero for pageSize. If pageSize is not provided, it will default to 20. By default, result is order by the level of relevance found using our search pattern, this means that exact matches should be listed first than partial matches and so on. When applying an order other than "Default" results will be order by the specify key and not using the above mentioned logical sorting. |
GET v1/pages/{id} |
Use this method to get a single page. |
POST v1/pages/{environment}/{orgId}/{appId}?layer={layer} |
Use this method to create a new dynamic content page. Required page properties are, page title, and column layout. All other properties are optional within the page structure. When creating a page, if Public lobby or Private lobby are set to true, the application will be updated to select the created page as the new lobby page. Note that this does not happen when the page is updated, as different separate methods must be used to mark a page as the public or private facing lobby for an application. When creating a page you have the option to create a page category on the fly by filling the category display text only. If there is a category with the exact same name we avoid duplicates and use the existing category UUID instead, but if not, a new category will be created. |
GET v1/pages/{environment}/{orgId}/{appId}/validate-name?name={name}&layer={layer} |
Use this method to validate the name of a page within its content context. This method returns true, if the name is valid (not empty, no white spaces) and is not been used by any other page within the app / top or nested content context. |
PUT v1/pages/{id}/form?formId={formId} |
Use this method to associate an organization form with an existing dynamic page. This method also adds all form elements referencing the dynamic form added. |
POST v1/pages/{id}/form?formId={formId} |
Use this method to associate an organization form with an existing dynamic page. This method also adds all form elements referencing the dynamic form added. |
GET v1/pages/{id}/form?formId={formId} |
Use this method to associate an organization form with an existing dynamic page. This method also adds all form elements referencing the dynamic form added. |
DELETE v1/pages/{id}/form |
Use this method to remove a form and all of its associated content from the provided page id. |
PUT v1/pages/{id} |
Use this method to update details for an existing page. Is important to note that unlike creating a page public lobby and private lobby statuses can not be updated using this method, there are methods specialized such purposes. Categories can be created by omitting the category UUID and setting the display name of the category. if a category is found with the same name, we will use the existing category instead of creating a brand new category. |
DELETE v1/pages/{id} |
Use this method to delete a dynamic page. This method returns Not Found if the page Id is invalid, and NoContent or OK if all went as expected. |
PUT v1/pages/{environment}/{orgId}/{appId}/{id}/lobby?layer={layer} |
Use this method to set the public lobby page for an application at the Organization or Venue level. The lobby page is the initially loaded dynamic content page an application displays. Pages are organized by level and every level must have a lobby page. Applications that are private or secured in some way via means of authentication, have two set of lobbies, the public and private lobby. Though the same page can be selected to exists in both states, is advisable to always have a separate set of navigational structures not mixed with the pages intended to be publicly accessible. |
PUT v1/pages/{environment}/{orgId}/{appId}/{id}/private-lobby?layer={layer} |
Use this method to set the private lobby page for an application at the Organization or Venue level. The lobby page is the initially loaded dynamic content page an application displays. Pages are organized by level and every level must have a lobby page. Applications that are private or secured in some way via means of authentication, have two set of lobbies, the public and private lobby. Though the same page can be selected to exists in both states, is advisable to always have a separate set of navigational structures not mixed with the pages intended to be publicly accessible. |
GET v1/pages/{id}/content |
Use this method to obtain the list of content elements for the provided page id. The same collection is returned when getting details for a single page. |
GET v1/pages/content/{id} |
Use this method to return a single content item by its unique identifier. |
POST v1/pages/{id}/content |
Use this method to add a new content item to an existing page. |
PUT v1/pages/content/{id} |
Use this method to update an existing content item. Note that parameters not sent won't override the existing data. Our recommendation is for updates to only send what changed. |
PUT v1/pages/{id}/content |
Use this method to batch update multiple content elements within a page. This is an expensive method and should be used only to update common items like Parent UUID or Titles. Important: Adding or Updating properties of an element grows the amount. of I/O operations against the database. In the request sample JSon provided we display updating title, removing the parent and updating the image of two elements simultaneously. |
DELETE v1/pages/content/{id} |
Use this method to permanently delete a content item. |
DELETE v1/pages/{id}/content |
Use this method to permanently delete a batch of elements within the specified page, with collection of element ids sent in the message body. Note that DELETE is not forbidden from having a message body by RFC 2616 therefore, is perfectly legal to use it when URI is not appropriate. |
POST v1/pages/{id}/content/table?rows={rows}&columns={columns} |
Use this method to conveniently create a table for the provided page id with a fixed amount of columns (cells) and rows. This method will generate all content elements for rows and cells with default values and return the full collection of created elements back to the caller. Note that this method does not validate if a table already exists in the page, it will always add a new table. |
GET v1/pages/content/{id}/carousel-pages |
Use this method to get all carousel pages for a content element. |
POST v1/pages/content/{id}/carousel-pages |
Use this method to add a single carousel page. |
PUT v1/pages/carousel-pages/{id}/organize?order={order} |
Use this method to update the order of a carousel page. |
GET v1/pages/carousel-pages/{id}/organize?order={order} |
Use this method to update the order of a carousel page. |
POST v1/pages/carousel-pages/{id}/organize?order={order} |
Use this method to update the order of a carousel page. |
DELETE v1/pages/carousel-pages/{id} |
Use this method to delete a carousel |
GET v1/pages/{environment}/{orgId}/categories |
This method returns all categories associated to an organization. Categories are shared across organization. |
PUT v1/pages/categories/{id} |
Use this method to update an existing category. This method does not return any content other than HTTP Status Code headers that identify the operation result. |
DELETE v1/pages/categories/{id}?replacePagesWithId={replacePagesWithId} |
Use this method to delete a category, and optionally replace any page referencing the deleted category with a different category unique identifier. When deleting a category, all pages referencing the category been deleted will have their reference removed, or optionally replaced with the replacement category sent. |
POST v1/pages/{environment}/{orgId}/{appId}/clone?level={level} |
Use this endpoint to create one or more page cloning background tasks. |
Fonts
This set of APIs are use to retrieve all server defined fonts, create or update existing fonts. Fonts obtained through this service can later be associated to applications. Fonts are not organization or application specific therefore, these methods affect every client who has an application associated to any font been modified.
API | Description |
---|---|
GET v1/fonts/families |
Use this API to get a list of all font families available. The list will also return an "Other" family which is where fonts that have no family specified will be placed. |
GET api/Fonts?family={family}&platform={platform}&pageIndex={pageIndex}&itemsPerPage={itemsPerPage} |
Use this method to get the list of all system fonts that can be potentially used for your application. Fonts are associated to a platform/device kind; you can limit the amount of fonts returned (also duplicates) if you send the appropriate platform. example of existing platforms/device kind are: iphone, ipad,android |
Forms
Use this API to manage dynamic form templates through the organization.
API | Description |
---|---|
GET v1/forms/{environment}/{orgId}?pageIndex={pageIndex}&pageSize={pageSize}&sort={sort} |
Use this method to get a list of all available forms for an organization. This method does not provide paging therefore, the calling party will receive all forms available for an organization. |
GET v1/forms/{id} |
Returns a specific form with details which includes the list of elements associated to the form. |
GET v1/forms/{environment}/{orgId}/search?searchText={searchText}&pageIndex={pageIndex}&pageSize={pageSize}&sort={sort} |
Use this method to search for forms within an organization. Search involves the title of the form, and description been title what dominates the order in which search results are returned. |
POST v1/forms/{environment}/{orgId} |
Use this method to create a new form and optionally create all form elements at the same time. |
PUT v1/forms/{id} |
Use this method to update form level values like form name, description etc. This method will not update form elements in any way. |
DELETE v1/forms/{id} |
Use this method to remove a dynamic form. is important to know that forms will never be deleted if a reference exists by any dynamic page to the form been deleted. |
POST v1/forms/{id}/clone?name={name} |
Use this method to clone a form, where the id is a Form Unique Identifier and the name is an optional parameter that specifies the name of the cloned form, if a name is not given then the original form name will be used along with the current clone number in parenthesis, ex. MyForm (1). |
GET v1/forms/{environment}/{orgId}/validate-name?name={name} |
Use this method to validate the name of a form within its content context. This method returns true, if the name is valid (not empty, no white spaces) and is not been used by any other form within the organization. |
GET v1/forms/element-types |
Use this method to obtain the list of form element types, (also known as input types) available for dynamic form items. |
GET v1/forms/{formId}/content |
Use this method to retrieve the list of Elements for a dynamic form. |
GET v1/forms/content/{id} |
Use this method to conveniently get details for one single form element. |
POST v1/forms/{formId}/content |
This method allows the caller to add form elements to an existing form. |
PUT v1/forms/content/{id} |
Use this method to update any property of an existing form element. |
DELETE v1/forms/content/{id} |
Use this method to delete a form element. |
GET v1/forms/content/{id}/choices) |
Use this method to get all the choices associated to a form element. |
GET v1/forms/content/{id}/choices |
Use this method to get all the choices associated to a form element. |
POST v1/forms/content/{id}/choices |
Use this method to add choices for a choice type element, or a five element select |
PUT v1/forms/choices/{id} |
Use this class to update an existing choice. |
DELETE v1/forms/choices/{id} |
Use this method to delete an existing choice. |
Internal
API | Description |
---|---|
GET v1/internal/exceptions/warnings/{date}?latestFirst={latestFirst} |
Returns all warning log entries for the provided date. |
GET v1/internal/exceptions/informational/{date}?latestFirst={latestFirst} |
Returns all informational log entries for the provided date. |
GET v1/internal/exceptions/critical/{date}?latestFirst={latestFirst} |
Returns all Critical log entries for the provided date. |
GET v1/internal/latlong/{zip} |
No documentation available. |
JobsQueue
Use this service to create, manage and view current or past jobs in the queue.
API | Description |
---|---|
GET v1/jobs-queue/{environment}/{orgId}/{appId}/validate-name?name={name} |
Use this method to validate the name of a job within an app/org context. . This method returns true, if the name is valid (not empty, no white spaces) and is not been used by any other job within the app / org context. |
GET v1/jobs-queue/{environment}/{orgId}/{appId}?pageIndex={pageIndex}&itemsPerPage={itemsPerPage}&orderBy={orderBy}&sort={sort} |
This method returns all jobs associated with the specified entity id. This method by default returns only the first page with a maximum of 20 jobs per page. The appropriate behavior is that as needed, the caller increments page id until the amount of items per page return is less than itemsPerPage. This method returns all jobs for all levels within an org, included jobs at the org level. |
GET v1/jobs-queue/{id} |
Use this method to retrieve all information for a Job that is presentable to a user. Only settings setup as UI Enabled will be returned by this method. |
POST v1/jobs-queue/{environment}/{orgId}/{appId}/filter?pageIndex={pageIndex}&itemsPerPage={itemsPerPage}&orderBy={orderBy}&sort={sort} |
This method returns all jobs associated with the specified entity id. By default if no page index or size is specified, only the first page with a maximum of 20 jobs per page will be returned. For the paging mechanism, the appropriate behavior is that as needed, the caller increments page id until the amount of items per page return is less than itemsPerPage. This method returns all jobs for all levels within an org, included jobs at the org level that are associated to a specific application via Job Setting [AppUUID]. |
GET v1/jobs-queue/statuses |
Returns a list of all possible job statuses. Note these objects are read-only and have no corresponding setters (POST / PUT) methods |
GET v1/jobs-queue/job-types?platform={platform} |
Returns a list of job types, it will return job types for the platform specified. |
GET v1/jobs-queue/internal/job-types?platform={platform} |
Returns a list of internal job types, it will return job types for the platform specified. |
GET v1/jobs-queue/{id}/download |
Use this method to download the latest sqlite database or file generated by the job id sent. Note that if no file has been created, the method will not fail but the body of the response will be empty. |
GET v1/jobs-queue/{id}/has-database |
Use this method to detect if a given job is associated with a cached resource that can be downloaded such as a sqlite database, or json content. This method will return a status code of OK (200) if there is a file that can be download and also the name of the file in the body as plain text. If the file is not found, the method will return a NO CONTENT (204) status code and nothing (empty string) in the body of the response. |
GET v1/jobs-queue/{environment}/{orgId}/{appId}/search?search={search}&pageIndex={pageIndex}&itemsPerPage={itemsPerPage}&orderBy={orderBy}&sort={sort} |
Use this method to search for jobs by name, job type name or status. |
GET v1/jobs-queue/clean-up?priorTo={priorTo} |
Use this method to clean up archived system queue jobs. |
POST v1/jobs-queue/{environment}/{orgId} |
Use this method to create a system queue job, as a one off, scheduled, or recurrent job. |
POST v1/jobs-queue/{environment}/{orgId}/{appId}/upload?typeId={typeId}&JobDisplayName={JobDisplayName}&venueUUID={venueUUID}&testMode={testMode} |
Use this method to create a one time off system queue job for the purpose of uploading a sqlite database and completing the new created job automatically. |
PUT v1/jobs-queue/{id} |
Updates an existing job and overrides its properties with the ones provided in update. |
GET v1/jobs-queue/{id}/run |
Use this method configure a job so that is available to be run immediately on the next system queue cycle. |
PUT v1/jobs-queue/{id}/upload?testMode={testMode} |
Updates an existing job sqlite database. |
DELETE v1/jobs-queue/internal/{id} |
Use this method to archive a job. This endpoint is a synonym of {id}/archive |
POST v1/jobs-queue/{id}/archive |
Use this method to archive a job. |
GET v1/jobs-queue/{environment}/{orgId}/cloning-queue |
This endpoint will upgrade to a web socket handshake when the request is a web socket request (Upgrade: websocket) or simply return a json if the request is a standard HTTP web request. |
Layers
API | Description |
---|---|
POST v1/layers/{environment}/{orgId}/{appId}?layerName={layerName} |
Use this endpoint to create a new level for an application. Is important to note that this endpoint internally checks name for uniqueness and raises errors when not unique, or name is invalid. |
GET v1/layers/{environment}/{orgId}/{appId}?pageIndex={pageIndex}&pageSize={pageSize}&sort={sort}&includeDisabled={includeDisabled} |
Use this method to retrieve all levels associated to an application. To obtain the complete list of level associated to an application without paging, ignore the pageSize parameter, or set it to -1. When Page Size is set to -1 or not present, parameter page index is ignored altogether. |
GET v1/layers/{id}/settings?settingSystemId={settingSystemId}&settingGroup={settingGroup} |
Returns a list of settings associated to a Level. The method gives you the option to choose as a parameter the System Id, or the Setting Group, but not mandatory. |
GET v1/layers/settings/{id} |
Return a setting by its unique identifier |
GET v1/layers/{id} |
Returns an app framework level given the right level id, HTTP status code "Not Found" will be returned if the level id does not match our records. |
PUT v1/layers/{id}?layerName={layerName} |
Use this endpoint to update a level name. Is important to note that this endpoint internally checks name for uniqueness and raises errors when not unique, or name is invalid. This endpoint does not return content, but a simple status code accepting changes (204 - No Content), or denying them due to validation errors (Anything equals to, or greater than 400). Check the status message for more information when errors occur upon validation. |
GET v1/layers/{environment}/{orgId}/{appId}/validate-name?layerName={layerName} |
Use this endpoint to validate the name of a level. |
PUT v1/layers/settings/{id} |
Use this method to update the value of a specific setting. |
POST v1/layers/{id}/settings |
Use this endpoint to add settings to a Nested Content Level |
DELETE v1/layers/settings/{id} |
Deletes level setting. |
PUT v1/layers/{id}/disable |
Use this endpoint to disable a level. |
PUT v1/layers/{id}/enable |
Use this endpoint to re-enable a level |
DELETE v1/layers/{id} |
Use this endpoint to delete a level. |
Notifications
This API Controller provides access to manage dynamic content pages, page elements and much more.
API | Description |
---|---|
GET v1/alerts/m3/{id}?message={message}&title={title} |
Use this endpoint to send push notifications using MaaS M3 Messages API. |