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

import atom from './atom';

export default {
  $xmlns: {
    adtcore: 'http://www.sap.com/adt/core',
    configuration: 'http://www.sap.com/adt/configuration',
    xsd: 'http://www.w3.org/2001/XMLSchema',
    ecore: 'http://www.eclipse.org/emf/2002/Ecore',
    atom: 'http://www.w3.org/2005/Atom',
  },
  $imports: [
    atom,
  ],
  targetNamespace: 'http://www.sap.com/adt/configuration',
  attributeFormDefault: 'unqualified',
  elementFormDefault: 'qualified',
  element: [
    {
      name: 'configuration',
      type: 'configuration:Configuration',
    },
  ],
  complexType: [
    {
      name: 'Configuration',
      sequence: {
        element: [
          {
            name: 'properties',
            type: 'configuration:Properties',
          },
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: '1',
          },
        ],
      },
      attribute: [
        {
          name: 'client',
          type: 'configuration:Client',
        },
        {
          name: 'configName',
          type: 'xsd:string',
        },
        {
          name: 'createdBy',
          type: 'configuration:User',
        },
        {
          name: 'createdAt',
          type: 'xsd:dateTime',
        },
        {
          name: 'changedBy',
          type: 'configuration:User',
        },
        {
          name: 'changedAt',
          type: 'xsd:dateTime',
        },
      ],
    },
    {
      name: 'Properties',
      sequence: {
        element: [
          {
            name: 'property',
            type: 'configuration:Property',
            minOccurs: '1',
            maxOccurs: 'unbounded',
          },
        ],
      },
    },
    {
      name: 'Property',
      simpleContent: {
        extension: {
          base: 'xsd:string',
          attribute: [
            {
              name: 'key',
              type: 'xsd:string',
            },
            {
              name: 'isMandatory',
              type: 'xsd:boolean',
            },
          ],
        },
      },
    },
  ],
  simpleType: [
    {
      name: 'User',
      restriction: {
        base: 'xsd:string',
        minLength: [
          {
            value: '0',
          },
        ],
        maxLength: [
          {
            value: '12',
          },
        ],
      },
    },
    {
      name: 'Client',
      restriction: {
        base: 'xsd:string',
        minLength: [
          {
            value: '0',
          },
        ],
        maxLength: [
          {
            value: '3',
          },
        ],
      },
    },
  ],
} as const;
