diff --git a/file-formats/susi/README.md b/file-formats/susi/README.md new file mode 100644 index 000000000..2355e6312 --- /dev/null +++ b/file-formats/susi/README.md @@ -0,0 +1,5 @@ +# SUSI File Format + +File | Cardinality | Definition | Schema | Example +:--- | :--- | :--- | :--- | :--- +`.susi.json` | 1 | [`zif_aff_susi_v1.intf.abap`](./type/zif_aff_susi_v1.intf.abap) | [`susi-v1.json`](./susi-v1.json) | [`55fae0107acd2ee619d9f869c651edhs.susi.json`](./examples/55fae0107acd2ee619d9f869c651edhs.susi.json) diff --git a/file-formats/susi/examples/55fae0107acd2ee619d9f869c651edhs.susi.json b/file-formats/susi/examples/55fae0107acd2ee619d9f869c651edhs.susi.json new file mode 100644 index 000000000..e2b0576eb --- /dev/null +++ b/file-formats/susi/examples/55fae0107acd2ee619d9f869c651edhs.susi.json @@ -0,0 +1,50 @@ +{ + "formatVersion": "1", + "header": { + "description": "WS SRT_TEST_WEBI/REQUEST_RESPONSE", + "originalLanguage": "en" + }, + "generalInformation": { + "applicationName": "SRT_TEST_WEBI/REQUEST_RESPONSE", + "applicationType": "WebService", + "maintenanceMode": "manual" + }, + "authorizationObjects": [ + { + "object": "S_SERVICE", + "maintenanceStatus": "noDefault" + }, + { + "object": "S_DATASET", + "maintenanceStatus": "defaultWithValues", + "fields": [ + { + "field": "ACTVT", + "low": "33" + }, + { + "field": "ACTVT", + "low": "34" + }, + { + "field": "PROGRAM", + "low": "SAPLSTRF" + }, + { + "field": "FILENAME", + "low": "" + } + ] + }, + { + "object": "S_TABU_RFC", + "maintenanceStatus": "defaultWithValues", + "fields": [ + { + "field": "ACTVT", + "low": "03" + } + ] + } + ] +} diff --git a/file-formats/susi/susi-v1.json b/file-formats/susi/susi-v1.json new file mode 100644 index 000000000..26d536a4a --- /dev/null +++ b/file-formats/susi/susi-v1.json @@ -0,0 +1,207 @@ +{ + "$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/susi/susi-v1.json", + "title": "SUSI Object Type", + "description": "Object type SUSI", + "type": "object", + "properties": { + "formatVersion": { + "title": "ABAP File Format Version", + "description": "The ABAP file 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": 60 + }, + "originalLanguage": { + "title": "Original Language", + "description": "Original language of the ABAP object", + "type": "string", + "minLength": 2, + "maxLength": 2, + "pattern": "^[a-z]+$" + }, + "abapLanguageVersion": { + "title": "ABAP Language Version", + "description": "ABAP language version", + "type": "string", + "enum": [ + "standard", + "cloudDevelopment" + ], + "enumTitles": [ + "Standard", + "ABAP Cloud Development" + ], + "enumDescriptions": [ + "Standard", + "ABAP cloud development" + ], + "default": "standard" + } + }, + "additionalProperties": false, + "required": [ + "description", + "originalLanguage" + ] + }, + "generalInformation": { + "title": "General Information", + "description": "General information", + "type": "object", + "properties": { + "applicationName": { + "title": "Application Name", + "description": "Application name of authorization defaults", + "type": "string", + "maxLength": 132 + }, + "applicationType": { + "title": "Application Type", + "description": "Type of authorization defaults", + "type": "string", + "maxLength": 80 + }, + "maintenanceMode": { + "title": "Maintenance Mode", + "description": "Maintenance mode", + "type": "string", + "enum": [ + "manual", + "automatic", + "automaticBasisObjects", + "noDefaultValues", + "deprecated", + "obsolete" + ], + "enumTitles": [ + "Manual Maintenance", + "Automatic Maintenance (All Objects)", + "Automatic Maintenance (Basis Authorization Objects Only)", + "Application Does Not Require Default Values", + "Application Is Deprecated", + "Application Is Obsolete" + ], + "enumDescriptions": [ + "Manual maintenance", + "Automatic maintenance (all objects)", + "Automatic maintenance (basis authorization objects only)", + "Application does not require default values", + "Application is deprecated", + "Application is obsolete" + ], + "default": "manual" + }, + "description": { + "title": "Description", + "description": "Description of authorization default values", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "applicationName", + "applicationType" + ] + }, + "authorizationObjects": { + "title": "Authorization Objects", + "description": "Authorization objects", + "type": "array", + "items": { + "title": "Authorization Object Details", + "description": "Details of Authorization object", + "type": "object", + "properties": { + "object": { + "title": "Object", + "description": "Name of Authorization Object", + "type": "string", + "maxLength": 10 + }, + "maintenanceStatus": { + "title": "Maintenance Status", + "description": "Maintenance Status", + "type": "string", + "enum": [ + "noDefault", + "defaultWithValues", + "defaultWithoutValues", + "inactiveValues" + ], + "enumTitles": [ + "No Default", + "Default With Field Values", + "Default Without Field Values", + "Default Inactive" + ], + "enumDescriptions": [ + "No default", + "Default with field values", + "Default without field values", + "Default inactive" + ], + "default": "defaultWithValues" + }, + "description": { + "title": "Description", + "description": "Description of authorization defaults of object", + "type": "string" + }, + "fields": { + "title": "Authorization Field Values", + "description": "Authorization field values", + "type": "array", + "items": { + "title": "Authorization Field Values", + "description": "Authorization field values", + "type": "object", + "properties": { + "field": { + "title": "Authorization Field", + "description": "Authorization field", + "type": "string", + "maxLength": 10 + }, + "low": { + "title": "From", + "description": "From value", + "type": "string", + "maxLength": 40 + }, + "high": { + "title": "To", + "description": "To values", + "type": "string", + "maxLength": 40 + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false, + "required": [ + "object" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "formatVersion", + "header", + "generalInformation" + ] +} diff --git a/file-formats/susi/type/zif_aff_susi_v1.intf.abap b/file-formats/susi/type/zif_aff_susi_v1.intf.abap new file mode 100644 index 000000000..11bbf28ce --- /dev/null +++ b/file-formats/susi/type/zif_aff_susi_v1.intf.abap @@ -0,0 +1,164 @@ +INTERFACE zif_aff_susi_v1 + PUBLIC. + + TYPES: + "!

Maintenance Mode

+ "! Maintenance mode + "! $values {@link zif_aff_susi_v1.data:co_maintenance_mode} + "! $default {@link zif_aff_susi_v1.data:co_maintenance_mode.manual} + ty_maintenance_mode TYPE c LENGTH 1, + "!

Maintenance Status

+ "! Maintenance status + "! $values {@link zif_aff_susi_v1.data:co_maintenance_status} + "! $default {@link zif_aff_susi_v1.data:co_maintenance_status.default_with_values} + ty_maintenance_status TYPE c LENGTH 1. + + CONSTANTS: + "!

Maintenance Mode

+ "! Maintenance mode + BEGIN OF co_maintenance_mode, + "!

Manual Maintenance

+ "! Manual maintenance + manual TYPE ty_maintenance_mode VALUE space, + "!

Automatic Maintenance (All Objects)

+ "! Automatic maintenance (all objects) + automatic TYPE ty_maintenance_mode VALUE 'A', + "!

Automatic Maintenance (Basis Authorization Objects Only)

+ "! Automatic maintenance (basis authorization objects only) + automatic_basis_objects TYPE ty_maintenance_mode VALUE 'B', + "!

Application Does Not Require Default Values

+ "! Application does not require default values + no_default_values TYPE ty_maintenance_mode VALUE 'I', + "!

Application Is Deprecated

+ "! Application is deprecated + deprecated TYPE ty_maintenance_mode VALUE 'D', + "!

Application Is Obsolete

+ "! Application is obsolete + obsolete TYPE ty_maintenance_mode VALUE 'O', + END OF co_maintenance_mode, + + "!

Maintenance Status

+ "! Maintenance status + BEGIN OF co_maintenance_status, + "!

No Default

+ "! No default + no_default TYPE ty_maintenance_status VALUE 'X', + "!

Default With Field Values

+ "! Default with field values + default_with_values TYPE ty_maintenance_status VALUE 'Y', + "!

Default Without Field Values

+ "! Default without field values + default_without_values TYPE ty_maintenance_status VALUE 'V', + "!

Default Inactive

+ "! Default inactive + inactive_values TYPE ty_maintenance_status VALUE 'I', + END OF co_maintenance_status. + + TYPES: + "!

Application Name

+ "! Name of application + ty_appl_name TYPE c LENGTH 132, + "!

Application Type

+ "! Type of application + ty_type TYPE c LENGTH 80. + + TYPES: + "!

General Information

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

Application Name

+ "! Application name of authorization defaults + "! $required + application_name TYPE ty_appl_name, + "!

Application Type

+ "! Type of authorization defaults + "! $required + application_type TYPE ty_type, + "!

Maintenance Mode

+ "! Maintenance mode + "! $values {@link zif_aff_susi_v1.data:co_maintenance_mode} + "! $default {@link zif_aff_susi_v1.data:co_maintenance_mode.manual} + "! $showAlways + maintenance_mode TYPE ty_maintenance_mode, + "!

Description

+ "! Description of authorization default values + description TYPE string, + END OF ty_general_information. + + TYPES: + "!

Authorization Value

+ "! Authorization Value + ty_val TYPE c LENGTH 40, + "!

Authorization Field

+ "! Authorization Field + ty_field TYPE c LENGTH 10. + + TYPES: + "!

Authorization Field Values

+ "! Authorization field values + BEGIN OF ty_authorization_field, + "!

Authorization Field

+ "! Authorization field + field TYPE ty_field, + "!

From

+ "! From value + "! $showAlways + low TYPE ty_val, + "!

To

+ "! To values + high TYPE ty_val, + END OF ty_authorization_field. + + TYPES: + "!

Authorization Fields

+ "! Authorization fields + ty_authorization_fields TYPE STANDARD TABLE OF ty_authorization_field WITH DEFAULT KEY. + + TYPES: + "!

Authorization Object Details

+ "! Details of Authorization object + BEGIN OF ty_authorization_object, + "!

Object

+ "! Name of Authorization Object + "! $required + object TYPE c LENGTH 10, + "!

Maintenance Status

+ "! Maintenance Status + "! $values {@link zif_aff_susi_v1.data:co_maintenance_status} + "! $default {@link zif_aff_susi_v1.data:co_maintenance_status.default_with_values} + "! $showAlways + maintenance_status TYPE ty_maintenance_status, + "!

Description

+ "! Description of authorization defaults of object + description TYPE string, + "!

Authorization Field Values

+ "! Authorization field values + fields TYPE ty_authorization_fields, + END OF ty_authorization_object. + + TYPES: + "!

Authorization Objects

+ "! Authorization objects + ty_authorization_objects TYPE STANDARD TABLE OF ty_authorization_object WITH DEFAULT KEY. + + TYPES: + "!

SUSI Object Type

+ "! Object type SUSI + BEGIN OF ty_main, + "! $required + format_version TYPE zif_aff_types_v1=>ty_format_version, + "!

Header

+ "! Header + "! $required + header TYPE zif_aff_types_v1=>ty_header_60_cloud, + "!

General Information

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

Authorization Objects

+ "! Authorization objects + authorization_objects TYPE ty_authorization_objects, + END OF ty_main. + +ENDINTERFACE. diff --git a/file-formats/susi/type/zif_aff_susi_v1.intf.json b/file-formats/susi/type/zif_aff_susi_v1.intf.json new file mode 100644 index 000000000..1c5c77a26 --- /dev/null +++ b/file-formats/susi/type/zif_aff_susi_v1.intf.json @@ -0,0 +1,7 @@ +{ + "formatVersion": "1", + "header": { + "description": "Authentication Defaults AFF", + "originalLanguage": "en" + } +}