diff --git a/file-formats/uiad/README.md b/file-formats/uiad/README.md new file mode 100644 index 000000000..e218ef146 --- /dev/null +++ b/file-formats/uiad/README.md @@ -0,0 +1,5 @@ +# UIAD File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.uiad.json` | 1 | [`zif_aff_uiad_v1.intf.abap`](./type/zif_aff_uiad_v1.intf.abap) | [`uiad-v1.json`](./uiad-v1.json) | [`z_aff_example_uiad.uiad.json`](./examples/z_aff_example_uiad.uiad.json) diff --git a/file-formats/uiad/examples/z_aff_example_uiad.uiad.json b/file-formats/uiad/examples/z_aff_example_uiad.uiad.json new file mode 100644 index 000000000..94e8086bb --- /dev/null +++ b/file-formats/uiad/examples/z_aff_example_uiad.uiad.json @@ -0,0 +1,71 @@ +{ + "formatVersion": "1", + "header": { + "description": "Example of UIAD AFF Format", + "originalLanguage": "en" + }, + "generalInformation": { + "appType": "ui5", + "catalogId": "ZLOCAL_TEST", + "information": "Not translated info text", + "supportComponent": "CA-FLP-ABA" + }, + "ui5AppDetails": { + "appId": "sap.ushell.demo.AppNavSample", + "icfPath": "/sap/bc/ui5_ui5/ui2/appnavsample" + }, + "navigation": { + "targetMappingId": "Z_AFF_EXAMPLE_TM", + "semanticObject": "NavSample", + "action": "display", + "desktop": true, + "tablet": true, + "phone": true, + "parameters": [ + { + "name": "tmParamName", + "defaultValue": "Hello World!" + } + ] + }, + "tiles": [ + { + "id": "Z_AFF_EXAMPLE_TILE_STATIC", + "tileType": "static", + "isDefault": true, + "standard": { + "title": "Tile Title", + "subtitle": "Tile Subtitle", + "information": "Tile Information Text", + "keywords": "Test Example AFF", + "icon": "sap-icon://action-settings", + "tileNavigationParameters": [ + { + "name": "ParamName", + "value": "ParamValue" + } + ] + } + }, + { + "id": "Z_AFF_EXAMPLE_TILE_DYNAMIC", + "tileType": "dynamic", + "standard": { + "title": "Dynamic Tile Title", + "subtitle": "Demo Subtitle", + "icon": "sap-icon://action-settings", + "dynamic": { + "serviceBaseUrl": "/sap/opu/odata/UI2/PAGE_BUILDER_PERS/Catalogs/$count", + "refreshInterval": 10, + "numberUnit": "Ctas" + }, + "tileNavigationParameters": [ + { + "name": "paramName", + "value": "paramValue" + } + ] + } + } + ] +} diff --git a/file-formats/uiad/type/zif_aff_uiad_v1.intf.abap b/file-formats/uiad/type/zif_aff_uiad_v1.intf.abap new file mode 100644 index 000000000..17ae86b4d --- /dev/null +++ b/file-formats/uiad/type/zif_aff_uiad_v1.intf.abap @@ -0,0 +1,612 @@ +INTERFACE zif_aff_uiad_v1 + PUBLIC. + + TYPES: + "!

Header

+ "! The header for an ABAP main object (without source code) with a description of 255 characters + BEGIN OF ty_header, + "!

Description

+ "! Description of the ABAP object + "! $required + description TYPE c LENGTH 255, + + "! $required + original_language TYPE zif_aff_types_v1=>ty_original_language, + + abap_language_version TYPE zif_aff_types_v1=>ty_abap_language_version, + END OF ty_header. + + "!

Application Type

+ "! LADI application type + "! $values {@link zif_aff_uiad_v1.data:co_app_type} + "! $default {@link zif_aff_uiad_v1.data:co_app_type.ui5} + TYPES ty_app_type TYPE c LENGTH 1. + + CONSTANTS: + "!

Application Type

+ "! LADI application type + BEGIN OF co_app_type, + + "!

Transaction

+ "! Transaction + transaction TYPE ty_app_type VALUE 'T', + + "!

Web Dynpro Application

+ "! Web Dynpro application + web_dynpro TYPE ty_app_type VALUE 'W', + + "!

Web Client UI Application

+ "! Web Client UI application + web_client TYPE ty_app_type VALUE 'C', + + "!

SAPUI5 Fiori Application

+ "! SAPUI5 Fiori application + ui5 TYPE ty_app_type VALUE 'U', + + "!

SAPUI5 Fiori Application on SAP BTP (Deprecated)

+ "! SAPUI5 Fiori application on SAP BTP (deprecated) + legacy_ui5 TYPE ty_app_type VALUE 'S', + + "!

URL Application

+ "! URL application + url TYPE ty_app_type VALUE 'R', + + "!

Tile Only

+ "! Tile only + tile_only TYPE ty_app_type VALUE 'O', + + "!

URL Template

+ "! URL template + url_template TYPE ty_app_type VALUE 'G', + + END OF co_app_type. + + TYPES: + "!

General Information

+ "! General information + BEGIN OF ty_general_information, + + "!

Application Type

+ "! Application type + "! $required + app_type TYPE ty_app_type, + + "!

Technical Catalog

+ "! Technical catalog + "! $required + catalog_id TYPE c LENGTH 40, + + "!

SAP Fiori ID

+ "! SAP Fiori ID + fiori_id TYPE c LENGTH 20, + + "!

Transaction Code

+ "! Transaction code + transaction TYPE c LENGTH 20, + + "!

Target Mapping Information

+ "! Target mapping information + information TYPE c LENGTH 255, + + "!

Application Component (ACH)

+ "! Application component (ACH) + support_component TYPE c LENGTH 24, + + "!

Suppress Tiles

+ "! Suppress tiles + suppress_tiles TYPE abap_bool, + + END OF ty_general_information. + + TYPES: + "!

SAPUI5 Fiori Application Information

+ "! SAPUI5 Fiori application information + BEGIN OF ty_app_details_ui5, + + "!

SAPUI5 Component ID

+ "! SAPUI5 Component ID + "! $required + app_id TYPE c LENGTH 70, + + "!

ICF Path

+ "! ICF path + icf_path TYPE string, + + END OF ty_app_details_ui5. + + "! Web Dynpro integration mode + "! $values {@link zif_aff_uiad_v1.data:co_web_dynpro_integration_mode} + "! $default {@link zif_aff_uiad_v1.data:co_web_dynpro_integration_mode.system_default} + TYPES ty_web_dynpro_integration_mode TYPE c LENGTH 1. + + CONSTANTS: + "!

Web Dynpro Integration Mode

+ "! Web Dynpro integration mode + BEGIN OF co_web_dynpro_integration_mode, + + "!

System Default

+ "! System default + system_default TYPE ty_web_dynpro_integration_mode VALUE ' ', + + "!

Direct

+ "! Direct + direct TYPE ty_web_dynpro_integration_mode VALUE 'D', + + "!

Compatible

+ "! Compatible + compatible TYPE ty_web_dynpro_integration_mode VALUE 'C', + + END OF co_web_dynpro_integration_mode. + + TYPES: + "!

Web Dynpro Application Inforation

+ "! Web Dynpro application information + BEGIN OF ty_app_details_web_dynpro, + + "!

Web Dynpro Application

+ "! Web Dynpro application + "! $required + app_id TYPE c LENGTH 30, + + "!

Application Configuration

+ "! Application configuration + config_id TYPE c LENGTH 32, + + "!

Flavor ID

+ "! Flavor ID (deprecated) + flavor_id TYPE c LENGTH 32, + + "!

Integration Mode

+ "! Integration mode (deprecated) + integration_mode TYPE ty_web_dynpro_integration_mode, + + "!

Compatibility Mode

+ "! Compatibility mode (deprecated) + compatibility_mode TYPE abap_bool, + + END OF ty_app_details_web_dynpro. + + TYPES: + "!

Web Client Application Information

+ "! Web Client application information + BEGIN OF ty_app_details_web_client, + + "!

Target ID

+ "! Target ID + "! $required + target_id TYPE c LENGTH 10, + + END OF ty_app_details_web_client. + + TYPES: + "!

URL Template Parameter

+ "! URL template parameter + BEGIN OF ty_url_template_parameter, + + "!

Name

+ "! Parameter name + "! $required + name TYPE string, + + "!

Value

+ "! Parameter value + value TYPE string, + + END OF ty_url_template_parameter, + + ty_url_template_parameters TYPE STANDARD TABLE OF ty_url_template_parameter WITH DEFAULT KEY. + + TYPES: + "!

URL Template Application Information

+ "! URL template application information + BEGIN OF ty_app_details_url_template, + + "!

URL Template

+ "! URL template + "! $required + template_id TYPE c LENGTH 32, + + "!

URL Template Parameters

+ "! URL template parameters + parameters TYPE ty_url_template_parameters, + + END OF ty_app_details_url_template. + + "!

Filter Type

+ "! Type of the filter value + "! $values {@link zif_aff_uiad_v1.data:co_filter_type} + "! $default {@link zif_aff_uiad_v1.data:co_filter_type.plain} + TYPES ty_filter_type TYPE c LENGTH 1. + + CONSTANTS: + "!

Filter Type

+ "! Type of the filter value + BEGIN OF co_filter_type, + + "!

Plain

+ "! The filter value is used as is + plain TYPE ty_filter_type VALUE ' ', + + "!

Regex

+ "! The filter value is used as a regular expression + regex TYPE ty_filter_type VALUE 'R', + + END OF co_filter_type. + + TYPES: + "!

Navigation Parameter

+ "! Navigation parameter + BEGIN OF ty_parameter_item, + + "!

Parameter Name

+ "! Parameter name + "! $required + name TYPE string, + + "!

Parameter in Target Application

+ "! Parameter in target application + rename_to TYPE string, + + "!

Default Value

+ "! Default value + default_value TYPE string, + + "!

Filter Value

+ "! Filter value + filter_value TYPE string, + + "!

Filter Type

+ "! Filter type + filter_type TYPE ty_filter_type, + + "!

Required

+ "! Whether the parameter is required + required TYPE abap_bool, + + END OF ty_parameter_item, + + ty_parameter_items TYPE STANDARD TABLE OF ty_parameter_item WITH DEFAULT KEY. + + "!

Additional Parameter Handling

+ "! How additional parameters are handled + "! $values {@link zif_aff_uiad_v1.data:co_additional_param_handling} + "! $default {@link zif_aff_uiad_v1.data:co_additional_param_handling.allowed} + TYPES ty_additional_param_handling TYPE c LENGTH 1. + + CONSTANTS: + "!

Additional Parameter Handling

+ "! How additional parameters are handled + BEGIN OF co_additional_param_handling, + + "!

Allowed

+ "! Additional parameters are allowed + allowed TYPE ty_additional_param_handling VALUE 'A', + + "!

Ignored

+ "! Additional parameters are ignored + ignored TYPE ty_additional_param_handling VALUE 'I', + + "!

Not Allowed

+ "! Additional parameters are not allowed + not_allowed TYPE ty_additional_param_handling VALUE 'N', + + END OF co_additional_param_handling. + + TYPES: + "!

Navigation Information

+ "! Navigation information + BEGIN OF ty_navigation, + + "!

Target Mapping ID

+ "! Target mapping ID + "! $required + target_mapping_id TYPE c LENGTH 50, + + "!

Semantic Object

+ "! Semantic object of the target mapping + "! $required + semantic_object TYPE c LENGTH 30, + + "!

Action

+ "! Action of the target mapping + "! $required + action TYPE c LENGTH 60, + + "!

Target URL

+ "! Target URL used for apps of type 'Tile Only' and 'URL Application' + target_url TYPE string, + + "!

System Alias

+ "! System alias + system_alias TYPE c LENGTH 32, + + "!

Desktop

+ "! Desktop is supported as device type + desktop TYPE abap_bool, + + "!

Tablet

+ "! Tablet is supported as device type + tablet TYPE abap_bool, + + "!

Phone

+ "! Phone is supported as device type + phone TYPE abap_bool, + + "!

Navigation Parameters

+ "! Navigation parameters of the target mapping + parameters TYPE ty_parameter_items, + + "!

Additional Parameter Handling

+ "! How additional parameters are handled + additional_parameter_handling TYPE ty_additional_param_handling, + + END OF ty_navigation. + + "!

Tile Type

+ "! Tile type + "! $values {@link zif_aff_uiad_v1.data:co_tile_type} + "! $default {@link zif_aff_uiad_v1.data:co_tile_type.static} + TYPES ty_tile_type TYPE c LENGTH 1. + + CONSTANTS: + "!

Tile Type

+ "! Tile type + BEGIN OF co_tile_type, + + "!

Static

+ "! Static tile + static TYPE ty_tile_type VALUE 'S', + + "!

Dynamic

+ "! Dynamic tile + dynamic TYPE ty_tile_type VALUE 'D', + + "!

Custom

+ "! Custom tile + custom TYPE ty_tile_type VALUE 'C', + + END OF co_tile_type. + + TYPES: + "!

Dynamic Tile Details

+ "! Dynamic tile details + BEGIN OF ty_dynamic_tile_details, + + "!

Service URL

+ "! Service URL + service_base_url TYPE string, + + "!

Service Path

+ "! Service path + service_path TYPE string, + + "!

Refresh Interval

+ "! Duration until the tile is refreshed + refresh_interval TYPE i, + + "!

Number Unit

+ "! Number unit + number_unit TYPE string, + + END OF ty_dynamic_tile_details. + + TYPES: + "!

Tile Navigation Parameter

+ "! Tile navigation parameter + BEGIN OF ty_tile_navigation_parameter, + + "!

Name

+ "! Parameter name + "! $required + name TYPE string, + + "!

Value

+ "! Parameter value + value TYPE string, + + END OF ty_tile_navigation_parameter, + + ty_tile_navigation_parameters TYPE STANDARD TABLE OF ty_tile_navigation_parameter WITH DEFAULT KEY. + + TYPES: + "!

Standard Tile Details

+ "! Standard tile details + BEGIN OF ty_standard_tile_details, + + "!

Reuse Text From Application

+ "! Reuse text defined as part of the app + reuse_text_from_app TYPE abap_bool, + + "!

Title

+ "! Tile title + "! $required + title TYPE c LENGTH 255, + + "!

Subtitle

+ "! Tile subtitle + subtitle TYPE c LENGTH 255, + + "!

Information

+ "! Tile information + information TYPE c LENGTH 255, + + "!

Keywords

+ "! Tile keywords + keywords TYPE c LENGTH 255, + + "!

Icon

+ "! Tile icon + icon TYPE string, + + "!

Dynamic Tile Details

+ "! Dynamic tile details + dynamic TYPE ty_dynamic_tile_details, + + "!

Tile Navigation Parameters

+ "! Tile navigation parameters + tile_navigation_parameters TYPE ty_tile_navigation_parameters, + + END OF ty_standard_tile_details. + + TYPES: + "!

CHIP Bag Property

+ "! Property of a CHIP bag + BEGIN OF ty_chip_bag_property, + + "!

Name

+ "! Property name + "! $required + name TYPE c LENGTH 100, + + "!

Value

+ "! Property value + value TYPE string, + + "!

Translatable

+ "! Property is translatable + translatable TYPE abap_bool, + + END OF ty_chip_bag_property, + + ty_chip_bag_properties TYPE STANDARD TABLE OF ty_chip_bag_property WITH DEFAULT KEY. + + TYPES: + "!

Property Bag

+ "! Property bag + BEGIN OF ty_chip_bag, + + "!

Bag ID

+ "! Bag ID + "! $required + id TYPE c LENGTH 100, + + "!

Properties

+ "! Properties + properties TYPE ty_chip_bag_properties, + + END OF ty_chip_bag, + + ty_chip_bags TYPE STANDARD TABLE OF ty_chip_bag WITH DEFAULT KEY. + + TYPES: + "!

Custom Tile Details

+ "! Custom tile details + BEGIN OF ty_custom_tile_details, + + "!

Base CHIP

+ "! Base CHIP + base_chip_id TYPE c LENGTH 255, + + "!

Configuration

+ "! Configuration string of the CHIP + configuration TYPE string, + + "!

Property Bags

+ "! Property bags + bags TYPE ty_chip_bags, + + END OF ty_custom_tile_details. + + TYPES: + "!

Tile Details

+ "! Details of a tile + BEGIN OF ty_tile, + + "!

ID

+ "! Tile ID + "! $required + id TYPE c LENGTH 50, + + "!

Tile Type

+ "! Tile type + "! $required + tile_type TYPE ty_tile_type, + + "!

Is Default Tile

+ "! Tile is chosen by default + is_default TYPE abap_bool, + + "!

Is Legacy Tile

+ "! Tile is stored as legacy tile + is_legacy TYPE abap_bool, + + "!

Standard Details

+ "! Standard tile details + standard TYPE ty_standard_tile_details, + + "!

Custom Details

+ "! Custom tile details + custom TYPE ty_custom_tile_details, + + END OF ty_tile, + + ty_tiles TYPE STANDARD TABLE OF ty_tile WITH DEFAULT KEY. + + TYPES: + "!

Lifecycle

+ "! Lifecycle state + BEGIN OF ty_lifecycle, + + "!

Deprecated

+ "! Application is deprecated + deprecated TYPE abap_bool, + + "!

Successor

+ "! LADI of the successor application + successor TYPE c LENGTH 32, + + END OF ty_lifecycle. + + TYPES: + "!

LADI

+ "! Launchpad application descriptor item (LADI) + BEGIN OF ty_main, + + "!

Format Version

+ "! Format version + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + + "!

Header

+ "! Header + "! $required + header TYPE ty_header, + + "!

General Information

+ "! General information + "! $required + general_information TYPE ty_general_information, + + "!

SAPUI5 Application Information

+ "! SAPUI5 application information + ui5_app_details TYPE ty_app_details_ui5, + + "!

Web Dynpro Application Information

+ "! Web Dynpro application information + web_dynpro_app_details TYPE ty_app_details_web_dynpro, + + "!

Web Client Application Information

+ "! Web Client application information + web_client_app_details TYPE ty_app_details_web_client, + + "!

URL Template Application Information

+ "! URL Template application information + url_template_app_details TYPE ty_app_details_url_template, + + "!

Navigation Information

+ "! Navigation information + "! $required + navigation TYPE ty_navigation, + + "!

Tiles

+ "! Tiles + "! $required + tiles TYPE ty_tiles, + + "!

Lifecycle

+ "! Lifecycle state + lifecycle TYPE ty_lifecycle, + + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/uiad/type/zif_aff_uiad_v1.intf.json b/file-formats/uiad/type/zif_aff_uiad_v1.intf.json new file mode 100644 index 000000000..f7e319520 --- /dev/null +++ b/file-formats/uiad/type/zif_aff_uiad_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "UIAD: AFF Type v.1", + "originalLanguage": "en" + } +} diff --git a/file-formats/uiad/uiad-v1.json b/file-formats/uiad/uiad-v1.json new file mode 100644 index 000000000..11c028cd0 --- /dev/null +++ b/file-formats/uiad/uiad-v1.json @@ -0,0 +1,673 @@ +{ + "$comment": "This file is autogenerated, do not edit manually, see https://github.com/SAP/abap-file-formats for more information.", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/SAP/abap-file-formats/blob/main/file-formats/uiad/uiad-v1.json", + "title": "LADI", + "description": "Launchpad application descriptor item (LADI)", + "type": "object", + "properties": { + "formatVersion": { + "title": "Format Version", + "description": "Format version", + "type": "string", + "const": "1" + }, + "header": { + "title": "Header", + "description": "Header", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the ABAP object", + "type": "string", + "maxLength": 255 + }, + "originalLanguage": { + "title": "Original Language", + "description": "Original language of the ABAP object", + "type": "string", + "minLength": 2 + }, + "abapLanguageVersion": { + "title": "ABAP Language Version", + "description": "ABAP language version", + "type": "string", + "enum": [ + "standard", + "keyUser", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP for Key Users", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP for key user extensibility", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "generalInformation": { + "title": "General Information", + "description": "General information", + "type": "object", + "properties": { + "appType": { + "title": "Application Type", + "description": "Application type", + "type": "string", + "enum": [ + "transaction", + "webDynpro", + "webClient", + "ui5", + "legacyUi5", + "url", + "tileOnly", + "urlTemplate" + ], + "enumTitles": [ + "Transaction", + "Web Dynpro Application", + "Web Client UI Application", + "SAPUI5 Fiori Application", + "SAPUI5 Fiori Application on SAP BTP (Deprecated)", + "URL Application", + "Tile Only", + "URL Template" + ], + "enumDescriptions": [ + "Transaction", + "Web Dynpro application", + "Web Client UI application", + "SAPUI5 Fiori application", + "SAPUI5 Fiori application on SAP BTP (deprecated)", + "URL application", + "Tile only", + "URL template" + ], + "default": "ui5" + }, + "catalogId": { + "title": "Technical Catalog", + "description": "Technical catalog", + "type": "string", + "maxLength": 40 + }, + "fioriId": { + "title": "SAP Fiori ID", + "description": "SAP Fiori ID", + "type": "string", + "maxLength": 20 + }, + "transaction": { + "title": "Transaction Code", + "description": "Transaction code", + "type": "string", + "maxLength": 20 + }, + "information": { + "title": "Target Mapping Information", + "description": "Target mapping information", + "type": "string", + "maxLength": 255 + }, + "supportComponent": { + "title": "Application Component (ACH)", + "description": "Application component (ACH)", + "type": "string", + "maxLength": 24 + }, + "suppressTiles": { + "title": "Suppress Tiles", + "description": "Suppress tiles", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "appType", + "catalogId" + ] + }, + "ui5AppDetails": { + "title": "SAPUI5 Application Information", + "description": "SAPUI5 application information", + "type": "object", + "properties": { + "appId": { + "title": "SAPUI5 Component ID", + "description": "SAPUI5 Component ID", + "type": "string", + "maxLength": 70 + }, + "icfPath": { + "title": "ICF Path", + "description": "ICF path", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "appId" + ] + }, + "webDynproAppDetails": { + "title": "Web Dynpro Application Information", + "description": "Web Dynpro application information", + "type": "object", + "properties": { + "appId": { + "title": "Web Dynpro Application", + "description": "Web Dynpro application", + "type": "string", + "maxLength": 30 + }, + "configId": { + "title": "Application Configuration", + "description": "Application configuration", + "type": "string", + "maxLength": 32 + }, + "flavorId": { + "title": "Flavor ID", + "description": "Flavor ID (deprecated)", + "type": "string", + "maxLength": 32 + }, + "integrationMode": { + "title": "Integration Mode", + "description": "Integration mode (deprecated)", + "type": "string", + "enum": [ + "systemDefault", + "direct", + "compatible" + ], + "enumTitles": [ + "System Default", + "Direct", + "Compatible" + ], + "enumDescriptions": [ + "System default", + "Direct", + "Compatible" + ], + "default": "systemDefault" + }, + "compatibilityMode": { + "title": "Compatibility Mode", + "description": "Compatibility mode (deprecated)", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "appId" + ] + }, + "webClientAppDetails": { + "title": "Web Client Application Information", + "description": "Web Client application information", + "type": "object", + "properties": { + "targetId": { + "title": "Target ID", + "description": "Target ID", + "type": "string", + "maxLength": 10 + } + }, + "additionalProperties": false, + "required": [ + "targetId" + ] + }, + "urlTemplateAppDetails": { + "title": "URL Template Application Information", + "description": "URL Template application information", + "type": "object", + "properties": { + "templateId": { + "title": "URL Template", + "description": "URL template", + "type": "string", + "maxLength": 32 + }, + "parameters": { + "title": "URL Template Parameters", + "description": "URL template parameters", + "type": "array", + "items": { + "title": "URL Template Parameter", + "description": "URL template parameter", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "Parameter name", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Parameter value", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "templateId" + ] + }, + "navigation": { + "title": "Navigation Information", + "description": "Navigation information", + "type": "object", + "properties": { + "targetMappingId": { + "title": "Target Mapping ID", + "description": "Target mapping ID", + "type": "string", + "maxLength": 50 + }, + "semanticObject": { + "title": "Semantic Object", + "description": "Semantic object of the target mapping", + "type": "string", + "maxLength": 30 + }, + "action": { + "title": "Action", + "description": "Action of the target mapping", + "type": "string", + "maxLength": 60 + }, + "targetUrl": { + "title": "Target URL", + "description": "Target URL used for apps of type 'Tile Only' and 'URL Application'", + "type": "string" + }, + "systemAlias": { + "title": "System Alias", + "description": "System alias", + "type": "string", + "maxLength": 32 + }, + "desktop": { + "title": "Desktop", + "description": "Desktop is supported as device type", + "type": "boolean" + }, + "tablet": { + "title": "Tablet", + "description": "Tablet is supported as device type", + "type": "boolean" + }, + "phone": { + "title": "Phone", + "description": "Phone is supported as device type", + "type": "boolean" + }, + "parameters": { + "title": "Navigation Parameters", + "description": "Navigation parameters of the target mapping", + "type": "array", + "items": { + "title": "Navigation Parameter", + "description": "Navigation parameter", + "type": "object", + "properties": { + "name": { + "title": "Parameter Name", + "description": "Parameter name", + "type": "string" + }, + "renameTo": { + "title": "Parameter in Target Application", + "description": "Parameter in target application", + "type": "string" + }, + "defaultValue": { + "title": "Default Value", + "description": "Default value", + "type": "string" + }, + "filterValue": { + "title": "Filter Value", + "description": "Filter value", + "type": "string" + }, + "filterType": { + "title": "Filter Type", + "description": "Filter type", + "type": "string", + "enum": [ + "plain", + "regex" + ], + "enumTitles": [ + "Plain", + "Regex" + ], + "enumDescriptions": [ + "The filter value is used as is", + "The filter value is used as a regular expression" + ], + "default": "plain" + }, + "required": { + "title": "Required", + "description": "Whether the parameter is required", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + } + }, + "additionalParameterHandling": { + "title": "Additional Parameter Handling", + "description": "How additional parameters are handled", + "type": "string", + "enum": [ + "allowed", + "ignored", + "notAllowed" + ], + "enumTitles": [ + "Allowed", + "Ignored", + "Not Allowed" + ], + "enumDescriptions": [ + "Additional parameters are allowed", + "Additional parameters are ignored", + "Additional parameters are not allowed" + ], + "default": "allowed" + } + }, + "additionalProperties": false, + "required": [ + "targetMappingId", + "semanticObject", + "action" + ] + }, + "tiles": { + "title": "Tiles", + "description": "Tiles", + "type": "array", + "items": { + "title": "Tile Details", + "description": "Details of a tile", + "type": "object", + "properties": { + "id": { + "title": "ID", + "description": "Tile ID", + "type": "string", + "maxLength": 50 + }, + "tileType": { + "title": "Tile Type", + "description": "Tile type", + "type": "string", + "enum": [ + "static", + "dynamic", + "custom" + ], + "enumTitles": [ + "Static", + "Dynamic", + "Custom" + ], + "enumDescriptions": [ + "Static tile", + "Dynamic tile", + "Custom tile" + ], + "default": "static" + }, + "isDefault": { + "title": "Is Default Tile", + "description": "Tile is chosen by default", + "type": "boolean" + }, + "isLegacy": { + "title": "Is Legacy Tile", + "description": "Tile is stored as legacy tile", + "type": "boolean" + }, + "standard": { + "title": "Standard Details", + "description": "Standard tile details", + "type": "object", + "properties": { + "reuseTextFromApp": { + "title": "Reuse Text From Application", + "description": "Reuse text defined as part of the app", + "type": "boolean" + }, + "title": { + "title": "Title", + "description": "Tile title", + "type": "string", + "maxLength": 255 + }, + "subtitle": { + "title": "Subtitle", + "description": "Tile subtitle", + "type": "string", + "maxLength": 255 + }, + "information": { + "title": "Information", + "description": "Tile information", + "type": "string", + "maxLength": 255 + }, + "keywords": { + "title": "Keywords", + "description": "Tile keywords", + "type": "string", + "maxLength": 255 + }, + "icon": { + "title": "Icon", + "description": "Tile icon", + "type": "string" + }, + "dynamic": { + "title": "Dynamic Tile Details", + "description": "Dynamic tile details", + "type": "object", + "properties": { + "serviceBaseUrl": { + "title": "Service URL", + "description": "Service URL", + "type": "string" + }, + "servicePath": { + "title": "Service Path", + "description": "Service path", + "type": "string" + }, + "refreshInterval": { + "title": "Refresh Interval", + "description": "Duration until the tile is refreshed", + "type": "integer", + "minimum": -2147483648, + "maximum": 2147483647 + }, + "numberUnit": { + "title": "Number Unit", + "description": "Number unit", + "type": "string" + } + }, + "additionalProperties": false + }, + "tileNavigationParameters": { + "title": "Tile Navigation Parameters", + "description": "Tile navigation parameters", + "type": "array", + "items": { + "title": "Tile Navigation Parameter", + "description": "Tile navigation parameter", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "Parameter name", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Parameter value", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "title" + ] + }, + "custom": { + "title": "Custom Details", + "description": "Custom tile details", + "type": "object", + "properties": { + "baseChipId": { + "title": "Base CHIP", + "description": "Base CHIP", + "type": "string", + "maxLength": 255 + }, + "configuration": { + "title": "Configuration", + "description": "Configuration string of the CHIP", + "type": "string" + }, + "bags": { + "title": "Property Bags", + "description": "Property bags", + "type": "array", + "items": { + "title": "Property Bag", + "description": "Property bag", + "type": "object", + "properties": { + "id": { + "title": "Bag ID", + "description": "Bag ID", + "type": "string", + "maxLength": 100 + }, + "properties": { + "title": "Properties", + "description": "Properties", + "type": "array", + "items": { + "title": "CHIP Bag Property", + "description": "Property of a CHIP bag", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "Property name", + "type": "string", + "maxLength": 100 + }, + "value": { + "title": "Value", + "description": "Property value", + "type": "string" + }, + "translatable": { + "title": "Translatable", + "description": "Property is translatable", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "id", + "tileType" + ] + } + }, + "lifecycle": { + "title": "Lifecycle", + "description": "Lifecycle state", + "type": "object", + "properties": { + "deprecated": { + "title": "Deprecated", + "description": "Application is deprecated", + "type": "boolean" + }, + "successor": { + "title": "Successor", + "description": "LADI of the successor application", + "type": "string", + "maxLength": 32 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "generalInformation", + "navigation", + "tiles" + ] +}