/**
 * Auto-generated schema from XSD
 * 
 * DO NOT EDIT - Generated by ts-xsd codegen
 * Source: xsd/sap/tablesettings.xsd
 */

import adtcore from './adtcore';

export default {
  $xmlns: {
    adtcore: 'http://www.sap.com/adt/core',
    ecore: 'http://www.eclipse.org/emf/2002/Ecore',
    xsd: 'http://www.w3.org/2001/XMLSchema',
    ts: 'http://www.sap.com/dictionary/table/settings',
  },
  $imports: [
    adtcore,
  ],
  targetNamespace: 'http://www.sap.com/dictionary/table/settings',
  attributeFormDefault: 'qualified',
  elementFormDefault: 'qualified',
  element: [
    {
      name: 'tableSettings',
      type: 'ts:TableSettings',
    },
    {
      name: 'loggingAssessment',
      type: 'ts:LoggingAssessment',
    },
  ],
  complexType: [
    {
      name: 'TableSettings',
      complexContent: {
        extension: {
          base: 'adtcore:AdtObject',
          sequence: {
            element: [
              {
                name: 'dataClassCategory',
                type: 'xsd:string',
              },
              {
                name: 'sizeCategory',
                type: 'xsd:string',
              },
              {
                name: 'buffering',
                type: 'ts:Buffering',
              },
              {
                name: 'storageType',
                type: 'ts:StorageType',
              },
              {
                name: 'sharingType',
                type: 'ts:SharingType',
              },
              {
                name: 'loadUnit',
                type: 'ts:LoadUnit',
              },
              {
                name: 'translation',
                type: 'ts:TranslationSetting',
              },
              {
                name: 'loggingEnabled',
                type: 'xsd:boolean',
              },
              {
                name: 'supportsLoggingAssessment',
                type: 'xsd:boolean',
              },
              {
                name: 'isWritableByAMDP',
                type: 'xsd:boolean',
              },
            ],
          },
        },
      },
    },
    {
      name: 'Buffering',
      sequence: {
        element: [
          {
            name: 'allowed',
            type: 'ts:BufferingAllowed',
          },
          {
            name: 'type',
            type: 'ts:BufferingType',
          },
          {
            name: 'areaKeyFields',
            type: 'xsd:string',
          },
        ],
      },
    },
    {
      name: 'LoggingAssessment',
      sequence: {
        element: [
          {
            name: 'allowed',
            type: 'xsd:boolean',
          },
          {
            name: 'rating',
            type: 'ts:Rating',
          },
          {
            name: 'reason',
            type: 'xsd:string',
          },
        ],
      },
      attribute: [
        {
          name: 'isVisible',
          type: 'xsd:boolean',
        },
        {
          name: 'isEditable',
          type: 'xsd:boolean',
        },
        {
          name: 'name',
          type: 'xsd:string',
        },
      ],
    },
    {
      name: 'TranslationSetting',
      attribute: [
        {
          name: 'value',
          type: 'ts:Translation',
        },
        {
          name: 'granularity',
          type: 'ts:TranslationGranularity',
        },
        {
          name: 'isVisible',
          type: 'xsd:boolean',
        },
        {
          name: 'isEditable',
          type: 'xsd:boolean',
        },
      ],
    },
  ],
  simpleType: [
    {
      name: 'BufferingAllowed',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'N',
          },
          {
            value: 'X',
          },
          {
            value: 'A',
          },
        ],
      },
    },
    {
      name: 'BufferingType',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'P',
          },
          {
            value: 'G',
          },
          {
            value: 'X',
          },
          {
            value: '',
          },
        ],
      },
    },
    {
      name: 'StorageType',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'R',
          },
          {
            value: 'C',
          },
          {
            value: '',
          },
        ],
      },
    },
    {
      name: 'SharingType',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'L',
          },
          {
            value: 'R',
          },
          {
            value: 'W',
          },
          {
            value: 'T',
          },
          {
            value: 'S',
          },
          {
            value: '',
          },
        ],
      },
    },
    {
      name: 'Translation',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'X',
          },
          {
            value: 'L',
          },
          {
            value: 'T',
          },
          {
            value: 'N',
          },
          {
            value: '',
          },
        ],
      },
    },
    {
      name: 'TranslationGranularity',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: '1',
          },
          {
            value: '2',
          },
          {
            value: '',
          },
        ],
      },
    },
    {
      name: 'Rating',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'REQUIRED',
          },
          {
            value: 'NOT_REQUIRED',
          },
          {
            value: 'MAY_BE_REQUIRED',
          },
          {
            value: 'UNDEFINED',
          },
          {
            value: '',
          },
        ],
      },
    },
    {
      name: 'LoadUnit',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: '',
          },
          {
            value: 'P',
          },
          {
            value: 'A',
          },
          {
            value: 'Q',
          },
        ],
      },
    },
  ],
} as const;
