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

import atom from './atom';
import adtcore from './adtcore';

export default {
  $xmlns: {
    xsd: 'http://www.w3.org/2001/XMLSchema',
    ecore: 'http://www.eclipse.org/emf/2002/Ecore',
    logpoints: 'http://www.sap.com/adt/categories/dynamiclogpoints',
    adtcore: 'http://www.sap.com/adt/core',
    atom: 'http://www.w3.org/2005/Atom',
  },
  $imports: [
    atom,
    adtcore,
  ],
  targetNamespace: 'http://www.sap.com/adt/categories/dynamiclogpoints',
  simpleType: [
    {
      name: 'AdtLogpointUsageType',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'SQL Trace',
          },
          {
            value: 'Default',
          },
          {
            value: 'Unknown',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointActivationState',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'Active',
          },
          {
            value: 'NotYetActivated',
          },
          {
            value: 'Inactivated',
          },
          {
            value: 'Unknown',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointActivityType',
      restriction: {
        base: 'xsd:string',
        enumeration: [
          {
            value: 'SINGLE_FIELD',
          },
          {
            value: 'STACK_TRACE',
          },
          {
            value: 'SQL_TRACE',
          },
          {
            value: 'BUFFER_TRACE',
          },
          {
            value: 'COMPLEX',
          },
        ],
      },
    },
  ],
  complexType: [
    {
      name: 'AdtLogpointDefinition',
      attribute: [
        {
          name: 'description',
          type: 'xsd:string',
        },
        {
          name: 'subKey',
          type: 'xsd:string',
        },
        {
          name: 'fields',
          type: 'xsd:string',
        },
        {
          name: 'condition',
          type: 'xsd:string',
        },
        {
          name: 'rollareaCounter',
          type: 'xsd:int',
        },
        {
          name: 'usageType',
          type: 'xsd:string',
        },
        {
          name: 'createdBy',
          type: 'xsd:string',
        },
        {
          name: 'changedBy',
          type: 'xsd:string',
        },
        {
          name: 'changedAt',
          type: 'xsd:dateTime',
        },
        {
          name: 'expiresAt',
          type: 'xsd:dateTime',
        },
        {
          name: 'activityType',
          type: 'xsd:string',
        },
        {
          name: 'retentionTimeInDays',
          type: 'xsd:int',
        },
      ],
    },
    {
      name: 'AdtLogpointActivation',
      sequence: {
        element: [
          {
            name: 'users',
            type: 'logpoints:AdtLogpointUserList',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'servers',
            type: 'logpoints:AdtLogpointServerList',
            minOccurs: '0',
            maxOccurs: '1',
          },
        ],
      },
      attribute: [
        {
          name: 'state',
          type: 'xsd:string',
        },
        {
          name: 'activatedBy',
          type: 'xsd:string',
        },
        {
          name: 'activeSince',
          type: 'xsd:dateTime',
        },
        {
          name: 'activeUntil',
          type: 'xsd:dateTime',
        },
        {
          name: 'inactivatedBy',
          type: 'xsd:string',
        },
        {
          name: 'inactiveSince',
          type: 'xsd:dateTime',
        },
      ],
    },
    {
      name: 'AdtLogpointUserList',
      sequence: {
        element: [
          {
            name: 'user',
            type: 'logpoints:AdtLogpointUser',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointUser',
      attribute: [
        {
          name: 'name',
          type: 'xsd:string',
        },
      ],
    },
    {
      name: 'AdtLogpointServerList',
      sequence: {
        element: [
          {
            name: 'server',
            type: 'logpoints:AdtLogpointServer',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointServer',
      attribute: [
        {
          name: 'name',
          type: 'xsd:string',
        },
      ],
    },
    {
      name: 'AdtLogpoint',
      sequence: {
        element: [
          {
            name: 'location',
            type: 'logpoints:AdtLogpointLocationInfo',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'definition',
            type: 'logpoints:AdtLogpointDefinition',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'activation',
            type: 'logpoints:AdtLogpointActivation',
            minOccurs: '0',
            maxOccurs: '1',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointList',
      sequence: {
        minOccurs: '0',
        maxOccurs: 'unbounded',
        element: [
          {
            name: 'logpoint',
            type: 'logpoints:AdtLogpointEntry',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointEntry',
      sequence: {
        element: [
          {
            name: 'summary',
            type: 'logpoints:AdtLogpointSummary',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'definition',
            type: 'logpoints:AdtLogpointDefinition',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'activation',
            type: 'logpoints:AdtLogpointActivation',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
          {
            name: 'location',
            type: 'logpoints:AdtLogpointLocationInfo',
            minOccurs: '0',
            maxOccurs: '1',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointSummary',
      sequence: {
        element: [
          {
            name: 'shortInfo',
            type: 'xsd:string',
          },
          {
            name: 'executions',
            type: 'xsd:int',
          },
        ],
      },
    },
    {
      name: 'AdtLogpointLocationCheck',
      sequence: {
        minOccurs: '0',
        maxOccurs: 'unbounded',
        element: [
          {
            name: 'location',
            type: 'logpoints:AdtLogpointLocationInfo',
            minOccurs: '0',
            maxOccurs: '1',
          },
        ],
      },
      attribute: [
        {
          name: 'message',
          type: 'xsd:string',
        },
        {
          name: 'possible',
          type: 'xsd:boolean',
        },
      ],
    },
    {
      name: 'AdtLogpointProgram',
      sequence: {
        minOccurs: '0',
        maxOccurs: 'unbounded',
        element: [
          {
            ref: 'atom:link',
            minOccurs: '0',
            maxOccurs: 'unbounded',
          },
        ],
      },
      attribute: [
        {
          name: 'name',
          type: 'xsd:string',
        },
      ],
    },
    {
      name: 'AdtLogpointLocationInfo',
      sequence: {
        element: [
          {
            name: 'includePosition',
            type: 'adtcore:AdtObjectReference',
            minOccurs: '0',
            maxOccurs: '1',
          },
          {
            name: 'mainProgram',
            type: 'adtcore:AdtObjectReference',
            minOccurs: '0',
            maxOccurs: '1',
          },
        ],
      },
    },
  ],
  element: [
    {
      name: 'logpoint',
      type: 'logpoints:AdtLogpoint',
    },
    {
      name: 'logpointList',
      type: 'logpoints:AdtLogpointList',
    },
    {
      name: 'locationCheck',
      type: 'logpoints:AdtLogpointLocationCheck',
    },
  ],
} as const;
