<?xml version="1.0" encoding="UTF-8"?>
<!--  ALTRAN_PROLOG_BEGIN_TAG                                                    -->
<!--  This is an automatically generated prolog.                                  -->
<!--                                                                              -->
<!--  Copyright (C) Altran ACT S.A.S. 2019,2021.  All rights reserved.  -->
<!--                                                                              -->
<!--  ALTRAN_PROLOG_END_TAG                                                      -->
<!--                                                                              -->
<!-- IBM_PROLOG_BEGIN_TAG                                                   -->
<!-- This is an automatically generated prolog.                             -->
<!--                                                                        -->
<!-- 61haes_r714 src/43haes/usr/sbin/cluster/sa/tsmclient/config/cl_tsmclient_config.xsd 1.4 -->
<!--                                                                        -->
<!-- Licensed Materials - Property of IBM                                   -->
<!--                                                                        -->
<!-- COPYRIGHT International Business Machines Corp. 2010                   -->
<!-- All Rights Reserved                                                    -->
<!--                                                                        -->
<!-- US Government Users Restricted Rights - Use, duplication or            -->
<!-- disclosure restricted by GSA ADP Schedule Contract with IBM Corp.      -->
<!--                                                                        -->
<!-- IBM_PROLOG_END_TAG                                                     -->
<!-- @(#)  7d4c34b 43haes/usr/sbin/cluster/sa/tsmclient/config/cl_tsmclient_config.xsd, 726, 2147A_aha726, Feb 05 2021 09:50 PM -->
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>

 <xs:element name="smartassistconfig">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="properties" minOccurs='1' maxOccurs='1' />
   </xs:sequence>
   <xs:attribute name="id" type="xs:string" fixed="TSM_BACLIENT"/>
   <xs:attribute name="name" type="xs:string" use="required"/>
 </xs:complexType>
</xs:element>

 <xs:element name="properties">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="PrimaryNode" type='nodeNameType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="TakeoverNodes" type="takeoverNodesType" minOccurs='1' maxOccurs='1'/>
     <xs:element name="ConfigDirectory" type="pathType" minOccurs='1' maxOccurs='1'/> 
     <xs:element ref="ServiceIPs" minOccurs='1' maxOccurs='1'/>
     <xs:element ref="FileSystems" minOccurs='1' maxOccurs='1'/>
     <xs:element name="Hsm" type="HsmType" minOccurs='1' maxOccurs='1'/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>

 <xs:element name="ServiceIPs">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="ServiceIP" minOccurs='1' maxOccurs='unbounded'/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>


 <xs:element name="ServiceIP">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="IPAddress_or_name" type="serviceIPType" minOccurs='1' maxOccurs='1' />
     <xs:element name="Prefix_or_Netmask" type="netmaskType" minOccurs='1' maxOccurs='1' />
   </xs:sequence>
  </xs:complexType>
 </xs:element>


 <xs:element name="FileSystems">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="FileSystem" minOccurs='1' maxOccurs='unbounded'/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>


 <xs:element name="FileSystem">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="fsname" type="pathType" minOccurs='1' maxOccurs='1'/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>

<!-- Data types defination -->

  <xs:simpleType name="userIDType">
    <xs:restriction base="xs:normalizedString">
      <xs:pattern value="([a-zA-Z])([a-zA-Z0-9]){0,255}"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="nodeNameType">
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-zA-Z])([a-zA-Z0-9]){0,63}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="takeoverNodesType">
    <xs:restriction base="xs:string">
      <xs:pattern value="(([a-zA-Z])([a-zA-Z0-9]){0,63},){0,31}([a-zA-Z])([a-zA-Z0-9]){0,63}"/>
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="pathType">
    <xs:restriction base="xs:string">
      <xs:pattern value="(([a-zA-Z0-9_\./]){1,}){1,}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="HsmType">
    <xs:restriction base="xs:string">
      <xs:pattern value="(y|n)"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="serviceIPType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9_\-]{1,31}"/>
      <xs:pattern value="[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?"/>
      <xs:pattern value="([0-9a-f][0-9a-f][0-9a-f][0-9a-f]:){7}([0-9a-f][0-9a-f][0-9a-f][0-9a-f])"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){7}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){0,6}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)(::)"/>
      <xs:pattern value="(::)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){0,6}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f])"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?::)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){0,4}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){2}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?::)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){0,3}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){3}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?::)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){0,2}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){4}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?::)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){0,1}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)"/>
      <xs:pattern value="([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?:){5}([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?::)([0-9a-f][0-9a-f]?[0-9a-f]?[0-9a-f]?)"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="netmaskType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?"/>
          <xs:pattern value=""/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:int">
          <xs:minInclusive value="0" />
          <xs:maxInclusive value="126" />
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

</xs:schema>
