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

import atom from './atom';
import logpoint from './logpoint';

export default {
  $xmlns: {
    xsd: 'http://www.w3.org/2001/XMLSchema',
    ecore: 'http://www.eclipse.org/emf/2002/Ecore',
    logs: 'http://www.sap.com/adt/categories/dynamiclogpoints/logs',
    xml: 'http://www.w3.org/XML/1998/namespace',
    atom: 'http://www.w3.org/2005/Atom',
    Q1: 'http://www.sap.com/adt/categories/dynamiclogpoints',
  },
  $imports: [
    atom,
    logpoint,
  ],
  targetNamespace: 'http://www.sap.com/adt/categories/dynamiclogpoints/logs',
  element: [
    {
      name: 'logKeys',
      type: 'logs:AdtLogpointLogKeys',
    },
    {
      name: 'logEntry',
      type: 'logs:AdtLogpointLogEntry',
    },
    {
      name: 'collectionSummary',
      type: 'logs:AdtLogCollectionSummary',
    },
  ],
  complexType: [
    {
      name: 'AdtLogpointLogKeys',
      sequence: {
        element: [
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
          {
            name: 'progVersion',
            type: 'logs:AdtLogpointProgVersion',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          ref: 'xml:base',
        },
      ],
    },
    {
      name: 'AdtLogpointLogFieldList',
      sequence: {
        element: [
          {
            name: 'field',
            type: 'logs:AdtLogpointLogField',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointLogEntry',
      sequence: {
        element: [
          {
            name: 'fieldList',
            type: 'logs:AdtLogpointLogFieldList',
          },
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointLogField',
      sequence: {
        element: [
          {
            name: 'value',
            type: 'logs:AdtLogpointLogComponentValue',
          },
        ],
      },
      attribute: [
        {
          name: 'name',
          type: 'xsd:string',
        },
      ],
    },
    {
      name: 'AdtLogpointProgVersion',
      sequence: {
        element: [
          {
            name: 'key',
            type: 'logs:AdtLogpointLogKey',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          name: 'generatedAt',
          type: 'xsd:dateTime',
        },
      ],
    },
    {
      name: 'AdtLogpointLogKey',
      sequence: {
        element: [
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          name: 'value',
          type: 'xsd:string',
        },
        {
          name: 'calls',
          type: 'xsd:int',
        },
        {
          name: 'lastCall',
          type: 'xsd:dateTime',
        },
      ],
    },
    {
      name: 'AdtLogpointLogComponentValue',
      sequence: {
        choice: [
          {
            element: [
              {
                name: 'e',
                type: 'logs:AdtLogpointLogElementary',
                minOccurs: '1',
                maxOccurs: '1',
              },
              {
                name: 's',
                type: 'logs:AdtLogpointLogStructure',
                minOccurs: '1',
                maxOccurs: '1',
              },
              {
                name: 't',
                type: 'logs:AdtLogpointLogTable',
                minOccurs: '1',
                maxOccurs: '1',
              },
            ],
          },
        ],
        element: [
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointLogStructure',
      sequence: {
        element: [
          {
            name: 'c',
            type: 'logs:AdtLogpointLogComponentValue',
            minOccurs: '1',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          name: 't',
          type: 'xsd:boolean',
        },
      ],
    },
    {
      name: 'AdtLogpointLogTable',
      sequence: {
        element: [
          {
            name: 'c',
            type: 'logs:AdtLogpointLogComponentValue',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          name: 't',
          type: 'xsd:boolean',
        },
      ],
    },
    {
      name: 'AdtLogpointLogElementary',
      attribute: [
        {
          name: 't',
          type: 'xsd:boolean',
        },
        {
          name: 'v',
          type: 'xsd:string',
        },
        {
          name: 'y',
          type: 'xsd:string',
        },
      ],
    },
    {
      name: 'AdtLogCollectionSummary',
      sequence: {
        minOccurs: '0',
        maxOccurs: '1',
        element: [
          {
            name: 'success',
            type: 'logs:AdtLogCollectionSummaryServerList',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'unreached',
            type: 'logs:AdtLogCollectionSummaryServerList',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'failed',
            type: 'logs:AdtLogCollectionSummaryServerFailure',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          name: 'collectedLogs',
          type: 'xsd:int',
        },
      ],
    },
    {
      name: 'AdtLogCollectionSummaryServerList',
      sequence: {
        minOccurs: '0',
        maxOccurs: 'unbounded',
        element: [
          {
            name: 'server',
            type: 'Q1:AdtLogpointServer',
          },
        ],
      },
    },
    {
      name: 'AdtLogCollectionSummaryServerFailure',
      attribute: [
        {
          name: 'server',
          type: 'xsd:string',
        },
        {
          name: 'returnCode',
          type: 'xsd:int',
        },
        {
          name: 'errorMessage',
          type: 'xsd:string',
        },
      ],
    },
  ],
  simpleType: [
    {
      name: 'AdtLogpointLogFieldKind',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'simple',
          },
          {
            value: 'structure',
          },
          {
            value: 'table',
          },
        ],
      },
    },
  ],
} as const;
