<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn://StorageResourceManagerV2.1.1" xmlns:impl="urn://StorageResourceManagerV2.1.1" xmlns:intf="urn://StorageResourceManagerV2.1.1" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
 <wsdl:documentation>

    Contributors to this document are:
 
    EDG-WP2  Peter Kunszt, Heinz Stockinger, Kurt Stockinger, Erwin Laure
    EDG-WP5  Jean-Philippe Baud, Stefano Occhetti, Jens Jensen, Emil Knezo, 
             Owen Synge, Olof Barring
    JLAB     Bryan Hess, Andy Kowalski, Chip Watson
    FNAL     Don Petravick, Timur Perelmutov, Rich Wellner
    LBNL     Junmin Gu , Arie Shoshani, Alex Sim

    The version 2.1 was prepared by Timur Perelmutov, Fermilab.
    The version 2.1.1 was modified by Alex Sim, LBNL.

    on basis of the Storage Resource Manager Interface Specification version 2.1.1
        published at http://sdm.lbl.gov/srm-wg

 </wsdl:documentation>
 
 <wsdl:types>
  <wsdl:schema >
   
   <simpleType name="TSpaceType">
    <restriction base="xsd:string">
     <enumeration value="Volatile"/>
     <enumeration value="Durable"/>
     <enumeration value="Permanent"/>
    </restriction>
   </simpleType>

   <simpleType name="TFileStorageType">
    <restriction base="xsd:string">
     <enumeration value="Volatile"/>
     <enumeration value="Durable"/>
     <enumeration value="Permanent"/>
    </restriction>
   </simpleType>

   <simpleType name="TFileType">
    <restriction base="xsd:string">
     <enumeration value="File"/>
     <enumeration value="Directory"/>
     <enumeration value="Link"/>
    </restriction>
   </simpleType>

   <simpleType name="TPermissionMode">
    <restriction base="xsd:string">
     <enumeration value="None"/>
     <enumeration value="X"/>
     <enumeration value="W"/>
     <enumeration value="WX"/>
     <enumeration value="R"/>
     <enumeration value="RX"/>
     <enumeration value="RW"/>
     <enumeration value="RWX"/>
    </restriction>
   </simpleType>

   <simpleType name="TPermissionType">
    <restriction base="xsd:string">
     <enumeration value="ADD"/>
     <enumeration value="REMOVE"/>
     <enumeration value="CHANGE"/>
    </restriction>
   </simpleType>

   <simpleType name="TRequestType">
    <restriction base="xsd:string">
     <enumeration value="PrepareToGet"/>
     <enumeration value="PrepareToPut"/>
     <enumeration value="Copy"/>
    </restriction>
   </simpleType>

   <simpleType name="TOverwriteMode">
    <restriction base="xsd:string">
     <enumeration value="Never"/>
     <enumeration value="Always"/>
     <enumeration value="WhenFilesAreDifferent"/>
    </restriction>
   </simpleType>

   <complexType name="TRequestToken">
     <wsdl:documentation>

         The requestToken assigned by SRM is unique and immutable
            (non-reusable).  For example, if the date:time is part
            of the requestToken it will be immutable.

     </wsdl:documentation>
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="TSpaceToken">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTSpaceToken">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TSpaceToken[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TUserID">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="TGroupID">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="TOwnerPermission">
    <sequence>
     <element name="mode" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TPermissionMode"/>
    </sequence>
   </complexType>

   <complexType name="TUserPermission">
    <sequence>
     <element name="mode" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TPermissionMode"/>
     <element name="userID" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TUserID"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTUserPermission">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TUserPermission[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TGroupPermission">
    <sequence>
     <element name="groupID" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TGroupID"/>
     <element name="mode" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TPermissionMode"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTGroupPermission">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TGroupPermission[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TOtherPermission">
    <sequence>
     <element name="mode" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TPermissionMode"/>
    </sequence>
   </complexType>

   <complexType name="TCheckSumType">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="TCheckSumValue">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="TSizeInBytes">
    <sequence>
     <element name="value" type="xsd:long"/>
    </sequence>
   </complexType>

   <complexType name="TGMTTime">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:dateTime"/>
    </sequence>
   </complexType>

   <complexType name="TLifeTimeInSeconds">
    <sequence>
     <element name="value" type="xsd:long"/>
    </sequence>
   </complexType>

   <complexType name="TSURL">
     <wsdl:documentation>

          The type definition SURL above is used for both site URL
            and the "Storage File Name" (stFN). This was done in
            order to simplify the notation.  Recall that stFN is
            the file path/name of the intended storage location
            when a file is put (or copied) into an SRM controlled
            space.  Thus, a stFN can be thought of a special case
            of an SURL, where the protocol is assumed to be "srm"
            and the machine:port is assumed to be local to the SRM.
             For example, when the request srmCopy  is made, the
            source file is specified by a site URL, and the target
            location can be optionally specified as a stFN.  By
            considering the stFN a special case of an SURL, an srmCopy
            takes SURLs as both the source and target parameters.

     </wsdl:documentation>

    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:anyURI"/>
    </sequence>
   </complexType>

   <complexType name="TTURL">
    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:anyURI"/>
    </sequence>
   </complexType>

   <complexType name="TMetaDataPathDetail">
    <sequence>
     <element name="path" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
     <element name="status" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TReturnStatus"/>
     <element name="size" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="ownerPermission" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TOwnerPermission"/>
     <element name="userPermissions" minOccurs="0" maxOccurs="1" nillable="true" type="impl:ArrayOfTUserPermission"/>
     <element name="groupPermissions" minOccurs="0" maxOccurs="1" nillable="true" type="impl:ArrayOfTGroupPermission"/>
     <element name="otherPermission" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TOtherPermission"/>
     <element name="createdAtTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TGMTTime"/>
     <element name="lastModificationTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TGMTTime"/>
     <element name="owner" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TUserID"/>
     <element name="fileStorageType" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TFileStorageType"/>
     <element name="type" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TFileType"/>
     <element name="lifetimeAssigned" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="lifetimeLeft" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="checkSumType" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TCheckSumType"/>
     <element name="checkSumValue" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TCheckSumValue"/>
     <element name="originalSURL" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSURL"/>
     <element name="subPaths" minOccurs="0" maxOccurs="1" nillable="true" type="impl:ArrayOfTMetaDataPathDetail"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTMetaDataPathDetail">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TMetaDataPathDetail[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TMetaDataSpace">
     <wsdl:documentation>

       TMetaDataSpace can refer to a single space of each type (i.e.
            volatile, durable, permanent).  It does not include
            the extra space needed to hold the directory structures. 

     </wsdl:documentation>
    <sequence>
     <element name="type" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSpaceType"/>
     <element name="spaceToken" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSpaceToken"/>
     <element name="isValid" type="xsd:boolean"/>
     <element name="owner" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TUserID"/>
     <element name="totalSize" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="guaranteedSize" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="unusedSize" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="lifetimeAssigned" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="lifetimeLeft" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTMetaDataSpace">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TMetaDataSpace[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TStorageSystemInfo">
     <wsdl:documentation>

         storageSystemInfo is a string that contains the login and
            password required by the storage system.  For example,
            it might have the form of login:passwd@hostname, where
            ":" is a reserved separator between login and passwd.
            If hostname is not provided, it is defaulted to what's
            in the accompanying site URL or the host of SRM.

         TstorageSystemInfo can contain but is not limited to the
            following: storage device, storage login ID, storage
            login authorization.

     </wsdl:documentation>

    <sequence>
     <element name="value" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:string"/>
    </sequence>
   </complexType>

   <complexType name="TDirOption">
    <sequence>
     <element name="allLevelRecursive" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:boolean"/>
     <element name="isSourceADirectory" minOccurs="1" maxOccurs="1" nillable="false" type="xsd:boolean"/>
     <element name="numOfLevels" type="xsd:int"/>
    </sequence>
   </complexType>

   <complexType name="TSURLInfo">
    <sequence>
     <element name="SURLOrStFN" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURL"/>
     <element name="storageSystemInfo" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TStorageSystemInfo"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTSURLInfo">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TSURLInfo[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TGetFileRequest">
     <wsdl:documentation>

         the default value of  "lifetime" for Volatile or Durable
            files will be the lifetime left in the space of the
            corresponding file type. The default value of "fileType"
            is Volatile.

     </wsdl:documentation>

    <sequence>
     <element name="dirOption" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TDirOption"/>
     <element name="fileStorageType" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TFileStorageType"/>
     <element name="fromSURLInfo" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURLInfo"/>
     <element name="lifetime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="spaceToken" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSpaceToken"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTGetFileRequest">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TGetFileRequest[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TPutFileRequest">
     <wsdl:documentation>

         the default value of  "lifetime" for Volatile or Durable
            files will be the lifetime left in the space of the
            corresponding file type. The default value of "fileType"
            is Volatile.

     </wsdl:documentation>
    <sequence>
     <element name="fileStorageType" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TFileStorageType"/>
     <element name="knownSizeOfThisFile" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="lifetime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="spaceToken" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSpaceToken"/>
     <element name="toSURLInfo" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURLInfo"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTPutFileRequest">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TPutFileRequest[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TCopyFileRequest">
     <wsdl:documentation>

         the default value of  "lifetime" for Volatile or Durable
            files will be the lifetime left in the space of the
            corresponding file type. The default value of "fileType"
            is Volatile.

     </wsdl:documentation>
    <sequence>
     <element name="dirOption" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TDirOption"/>
     <element name="fileStorageType" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TFileStorageType"/>
     <element name="fromSURLInfo" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURLInfo"/>
     <element name="lifetime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="overwriteMode" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TOverwriteMode"/>
     <element name="spaceToken" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSpaceToken"/>
     <element name="toSURLInfo" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURLInfo"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTCopyFileRequest">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TCopyFileRequest[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <simpleType name="TStatusCode">
     <wsdl:documentation>

            Status codes represent errors, warnings and status.

            Status code      Explanation

            SRM_SUCCESS:    
            SRM request was successful 

            Errors:

            SRM_FAILURE	:	
            Requested operation failed for unspecified reason, and
            additional info is in the explanation string.

            SRM_AUTHENTICATION_FAILURE:
            Requester has an invalid authentication information.

            SRM_UNAUTHORIZED_ACCESS:
            Requester has no permissions for the operation (although
            the user could have a valid authentication information).

            SRM_INVALID_REQUEST:
            The request is invalid, and additional information may
            be provided in the explanation string.   For example,
            The request token is invalid
            The requested life time of a file is longer than the
            lifetime of the space.

            SRM_INVALID_PATH:
            The requested file/directory path is invalid.

            SRM_FILE_LIFETIME_EXPIRED:
            The life time on the pinned file has expired

            SRM_SPACE_LIFETIME_EXPIRED:
            The life time on the reserved space has expired

            SRM_EXCEED_ALLOCATION:
            Requester exceeded allocation (number of requests, files
            or spaces), and the request cannot be placed.

            SRM_NO_USER_SPACE:
            The requester does not have enough space to put the
            file into that space.

            SRM_NO_FREE_SPACE:
            SRM has not more space.

            SRM_DUPLICATION_ERROR	:
            Requester tried to create a new file or directory that
            already exists.

            SRM_NON_EMPTY_DIRECTORY:
            Requester tried to remove a non-empty directory without
            the recursive option set.

            SRM_TOO_MANY_RESULTS:
            The request produced too many results;  for example,
            as a result of srmLs. The term "too many" is determined
            by each SRM , and the detailed information, such as
            the supported max number of results can be returned
            in the explanation string.

            SRM_INTERNAL_ERROR:
            SRM has an internal error temporarily.  Client may try
            again.

            SRM_FATAL_INTERNAL_ERROR:
            SRM has a severe internal error that cannot be recovered.
            
            SRM_NOT_SUPPORTED:
            SRM implementation does not support this functionality
            that client requested. 


            Status:

            SRM_REQUEST_QUEUED
            SRM_REQUEST_INPROGRESS
            SRM_REQUEST_SUSPENDEND
            SRM _ABORTED
            SRM _RELEASED

            SRM_FILE_PINNED
            The requested file is pinned

            SRM_FILE_IN_CACHE
            The file is in cache, but not pinned

            SRM_SPACE_AVAILABLE
            The requested space is reserved and ready to be used

            SRM_LOWER_SPACE_GRANTED
            The requested space is not ready, but lower sized space
            is granted.

            SRM _DONE
            SRM_CUSTOM_STATUS:
            SRM has a site specific status information. The details
            are described in the explanation string. 

     </wsdl:documentation>
    <restriction base="xsd:string">
     <enumeration value="SRM_SUCCESS"/>
     <enumeration value="SRM_FAILURE"/>
     <enumeration value="SRM_AUTHENTICATION_FAILURE"/>
     <enumeration value="SRM_UNAUATHORIZED_ACCESS"/>
     <enumeration value="SRM_INVALID_REQUEST"/>
     <enumeration value="SRM_INVALID_PATH"/>
     <enumeration value="SRM_FILE_LIFETIME_EXPIRED"/>
     <enumeration value="SRM_SPACE_LIFETIME_EXPIRED"/>
     <enumeration value="SRM_EXCEED_ALLOCATION"/>
     <enumeration value="SRM_NO_USER_SPACE"/>
     <enumeration value="SRM_NO_FREE_SPACE"/>
     <enumeration value="SRM_DUPLICATION_ERROR"/>
     <enumeration value="SRM_NON_EMPTY_DIRECTORY"/>
     <enumeration value="SRM_TOO_MANY_RESULTS"/>
     <enumeration value="SRM_INTERNAL_ERROR"/>
     <enumeration value="SRM_FATAL_INTERNAL_ERROR"/>
     <enumeration value="SRM_NOT_SUPPORTED"/>
     <enumeration value="SRM_REQUEST_QUEUED"/>
     <enumeration value="SRM_REQUEST_INPROGRESS"/>
     <enumeration value="SRM_REQUEST_SUSPENDED"/>
     <enumeration value="SRM_ABORTED"/>
     <enumeration value="SRM_RELEASED"/>
     <enumeration value="SRM_FILE_PINNED"/>
     <enumeration value="SRM_FILE_IN_CACHE"/>
     <enumeration value="SRM_SPACE_AVAILABLE"/>
     <enumeration value="SRM_LOWER_SPACE_GRANTED"/>
     <enumeration value="SRM_DONE"/>
     <enumeration value="SRM_CUSTOM_STATUS"/>
    </restriction>
   </simpleType>

   <complexType name="TReturnStatus">
    <sequence>
     <element name="explanation" minOccurs="0" maxOccurs="1" nillable="true" type="xsd:string"/>
     <element name="statusCode" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TStatusCode"/>
    </sequence>
   </complexType>

   <complexType name="TSURLReturnStatus">
    <sequence>
     <element name="status" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TReturnStatus"/>
     <element name="surl" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURL"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTSURLReturnStatus">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TSURLReturnStatus[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TGetRequestFileStatus">
    <sequence>
     <element name="estimatedProcessingTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="estimatedWaitTimeOnQueue" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="fileSize" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="fromSURLInfo" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURL"/>
     <element name="remainingPinTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="status" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TReturnStatus"/>
     <element name="transferURL" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TTURL"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTGetRequestFileStatus">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TGetRequestFileStatus[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TPutRequestFileStatus">
    <sequence>
     <element name="estimatedProcessingTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="estimatedWaitTimeOnQueue" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="fileSize" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="remainingPinTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="siteURL" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSURL"/>
     <element name="status" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TReturnStatus"/>
     <element name="transferURL" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TTURL"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTPutRequestFileStatus">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TPutRequestFileStatus[]"/>
     </restriction>
    </complexContent>
   </complexType>


   <complexType name="TCopyRequestFileStatus">
    <sequence>
     <element name="estimatedProcessingTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="estimatedWaitTimeOnQueue" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="fileSize" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSizeInBytes"/>
     <element name="fromSURL" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURL"/>
     <element name="remainingPinTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TLifeTimeInSeconds"/>
     <element name="status" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TReturnStatus"/>
     <element name="toSURL" minOccurs="1" maxOccurs="1" nillable="false" type="impl:TSURL"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTCopyRequestFileStatus">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TCopyRequestFileStatus[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TRequestSummary">
    <sequence>
     <element name="isSuspended" type="xsd:boolean"/>
     <element name="numOfFinishedRequests" type="xsd:int"/>
     <element name="numOfProgressingRequests" type="xsd:int"/>
     <element name="numOfQueuedRequests" type="xsd:int"/>
     <element name="requestToken" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TRequestToken"/>
     <element name="requestType" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TRequestType"/>
     <element name="totalFilesInThisRequest" type="xsd:int"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTRequestSummary">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TRequestSummary[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TSURLPermissionReturn">
    <sequence>
     <element name="status" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TReturnStatus"/>
     <element name="surl" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TSURL"/>
     <element name="userPermission" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TPermissionType"/>
    </sequence>
   </complexType>

   <complexType name="ArrayOfTSURLPermissionReturn">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TSURLPermissionReturn[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="ArrayOf_xsd_string">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="ArrayOfTSURL">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TSURL[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="ArrayOfTRequestToken">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:TRequestToken[]"/>
     </restriction>
    </complexContent>
   </complexType>

   <complexType name="TRequestTokenReturn">
    <sequence>
     <element name="requestToken" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TRequestToken"/>
     <element name="createdAtTime" minOccurs="0" maxOccurs="1" nillable="true" type="impl:TGMTTime"/>
    </sequence>
   </complexType>
   
   <documentation>

         all the following complex types are introduced for the
            purpose 

         of specifying the optional operation parameters

   </documentation>

      <complexType name="srmReserveSpaceRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true" name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false" name="typeOfSpace" type="impl:TSpaceType"/>

          <element minOccurs="0" maxOccurs="1" nillable="true" name="userSpaceTokenDescription" type="xsd:string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true" name="sizeOfTotalSpaceDesired" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true" name="sizeOfGuaranteedSpaceDesired" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="lifetimeOfSpaceToReserve" type="impl:TLifeTimeInSeconds"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>
        </sequence>

   </complexType>

   <complexType name="srmReserveSpaceResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="typeOfReservedSpace" type="impl:TSpaceType"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="sizeOfTotalReservedSpace" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="sizeOfGuaranteedReservedSpace" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="lifetimeOfReservedSpace" type="impl:TLifeTimeInSeconds"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="referenceHandleOfReservedSpace" type="impl:TSpaceToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmReleaseSpaceRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="spaceToken" type="impl:TSpaceToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="forceFileRelease" type="xsd:boolean"/>

        </sequence>
   </complexType>

   <complexType name="srmReleaseSpaceResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmUpdateSpaceRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="spaceToken" type="impl:TSpaceToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="newSizeOfTotalSpaceDesired" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="newSizeOfGuaranteedSpaceDesired" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="newLifeTimeFromCallingTime" type="impl:TLifeTimeInSeconds"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>

        </sequence>
   </complexType>

   <complexType name="srmUpdateSpaceResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="sizeOfTotalSpace" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="sizeOfGuaranteedSpace" type="impl:TSizeInBytes"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="lifetimeGranted" type="impl:TLifeTimeInSeconds"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmCompactSpaceRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="spaceToken" type="impl:TSpaceToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="doDynamicCompactFromNowOn" type="xsd:boolean"/>

        </sequence>
   </complexType>

   <complexType name="srmCompactSpaceResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="newSizeOfThisSpace" type="impl:TSizeInBytes"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmGetSpaceMetaDataRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfSpaceTokens" type="impl:ArrayOfTSpaceToken"/>

        </sequence>
   </complexType>

   <complexType name="srmGetSpaceMetaDataResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfSpaceDetails" type="impl:ArrayOfTMetaDataSpace"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmChangeFileStorageTypeRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="0" maxOccurs="1" nillable="false"  name="arrayOfPaths" type="impl:ArrayOfTSURLInfo"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="desiredStorageType" type="impl:TFileStorageType"/>

          <element minOccurs="1" maxOccurs="1" nillable="true"  name="spaceToken" type="impl:TSpaceToken"/>

        </sequence>
   </complexType>

   <complexType name="srmChangeFileStorageTypeResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTSURLReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmGetSpaceTokenRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="userSpaceTokenDescription" type="xsd:string"/>

        </sequence>
   </complexType>

   <complexType name="srmGetSpaceTokenResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfPossibleSpaceTokens" type="impl:ArrayOfTSpaceToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmSetPermissionRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="path" type="impl:TSURLInfo"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="permissionType" type="impl:TPermissionType"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="ownerPermission" type="impl:TOwnerPermission"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="userPermission" type="impl:ArrayOfTUserPermission"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="groupPermission" type="impl:ArrayOfTGroupPermission"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="otherPermission" type="impl:TOtherPermission"/>

        </sequence>
   </complexType>

   <complexType name="srmSetPermissionResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmReassignToUserRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="assignedUser" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="lifeTimeOfThisAssignment" type="impl:TLifeTimeInSeconds"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="path" type="impl:TSURLInfo"/>

        </sequence>
   </complexType>

   <complexType name="srmReassignToUserResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmCheckPermissionRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfSiteURLs" type="impl:ArrayOfTSURLInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="checkInLocalCacheOnly" type="xsd:boolean"/>

        </sequence>
   </complexType>

   <complexType name="srmCheckPermissionResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfPermissions" type="impl:ArrayOfTSURLPermissionReturn"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmMkdirRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="directoryPath" type="impl:TSURLInfo"/>

        </sequence>
   </complexType>

   <complexType name="srmMkdirResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmRmdirRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="directoryPath" type="impl:TSURLInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="recursive" type="xsd:boolean"/>

        </sequence>
   </complexType>

   <complexType name="srmRmdirResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmRmRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfFilePaths" type="impl:ArrayOfTSURLInfo"/>

        </sequence>
   </complexType>

   <complexType name="srmRmResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTSURLReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmLsRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="paths" type="impl:ArrayOfTSURLInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="fileStorageType" type="impl:TFileStorageType"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="fullDetailedList" type="xsd:boolean"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="allLevelRecursive" type="xsd:boolean"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="numOfLevels" type="xsd:int"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="offset" type="xsd:int"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="count" type="xsd:int"/>

        </sequence>
   </complexType>

   <complexType name="srmLsResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="details" type="impl:ArrayOfTMetaDataPathDetail"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmMvRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="fromPath" type="impl:TSURLInfo"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="toPath" type="impl:TSURLInfo"/>

        </sequence>
   </complexType>

   <complexType name="srmMvResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmPrepareToGetRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfFileRequests" type="impl:ArrayOfTGetFileRequest"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfTransferProtocols" type="impl:ArrayOf_xsd_string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="userRequestDescription" type="xsd:string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="totalRetryTime" type="impl:TLifeTimeInSeconds"/>

        </sequence>
   </complexType>

   <complexType name="srmPrepareToGetResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTGetRequestFileStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmPrepareToPutRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfFileRequests" type="impl:ArrayOfTPutFileRequest"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfTransferProtocols" type="impl:ArrayOf_xsd_string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="userRequestDescription" type="xsd:string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="overwriteOption" type="impl:TOverwriteMode"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="totalRetryTime" type="impl:TLifeTimeInSeconds"/>

        </sequence>
   </complexType>

   <complexType name="srmPrepareToPutResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTPutRequestFileStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmCopyRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfFileRequests" type="impl:ArrayOfTCopyFileRequest"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="userRequestDescription" type="xsd:string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="overwriteOption" type="impl:TOverwriteMode"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="removeSourceFiles" type="xsd:boolean"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="storageSystemInfo" type="impl:TStorageSystemInfo"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="totalRetryTime" type="impl:TLifeTimeInSeconds"/>

        </sequence>
   </complexType>

   <complexType name="srmCopyResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTCopyRequestFileStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmRemoveFilesRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="siteURLs" type="impl:ArrayOfTSURL"/>

        </sequence>
   </complexType>

   <complexType name="srmRemoveFilesResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTSURLReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmReleaseFilesRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="siteURLs" type="impl:ArrayOfTSURL"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="keepSpace" type="xsd:boolean"/>

        </sequence>
   </complexType>

   <complexType name="srmReleaseFilesResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTSURLReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmPutDoneRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfSiteURLs" type="impl:ArrayOfTSURL"/>

        </sequence>
   </complexType>

   <complexType name="srmPutDoneResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTSURLReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmAbortRequestRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

        </sequence>
   </complexType>

   <complexType name="srmAbortRequestResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmAbortFilesRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfSiteURLs" type="impl:ArrayOfTSURL"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

        </sequence>
   </complexType>

   <complexType name="srmAbortFilesResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTSURLReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmSuspendRequestRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

        </sequence>
   </complexType>

   <complexType name="srmSuspendRequestResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmResumeRequestRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

        </sequence>
   </complexType>

   <complexType name="srmResumeRequestResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmStatusOfGetRequestRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFromSURLs" type="impl:ArrayOfTSURL"/>

        </sequence>
   </complexType>

   <complexType name="srmStatusOfGetRequestResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTGetRequestFileStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmStatusOfPutRequestRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfToSURLs" type="impl:ArrayOfTSURL"/>

        </sequence>
   </complexType>

   <complexType name="srmStatusOfPutRequestResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTPutRequestFileStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmStatusOfCopyRequestRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFromSURLs" type="impl:ArrayOfTSURL"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfToSURLs" type="impl:ArrayOfTSURL"/>

        </sequence>
   </complexType>

   <complexType name="srmStatusOfCopyRequestResponse">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfFileStatuses" type="impl:ArrayOfTCopyRequestFileStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmGetRequestSummaryRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="arrayOfRequestTokens" type="impl:ArrayOfTRequestToken"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

        </sequence>
   </complexType>

   <complexType name="srmGetRequestSummaryResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfRequestSummaries" type="impl:ArrayOfTRequestSummary"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

   <complexType name="srmExtendFileLifeTimeRequest">
        <sequence>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="requestToken" type="impl:TRequestToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="siteURL" type="impl:TSURL"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="newLifeTime" type="impl:TLifeTimeInSeconds"/>

        </sequence>
   </complexType>

   <complexType name="srmExtendFileLifeTimeResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="newTimeExtended" type="impl:TLifeTimeInSeconds"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>


   <complexType name="srmGetRequestIDRequest">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="userRequestDescription" type="xsd:string"/>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="authorizationID" type="impl:TUserID"/>

        </sequence>
   </complexType>

   <complexType name="srmGetRequestIDResponse">
        <sequence>

          <element minOccurs="0" maxOccurs="1" nillable="true"  name="arrayOfRequestTokens" type="impl:ArrayOfTRequestToken"/>

          <element minOccurs="1" maxOccurs="1" nillable="false"  name="returnStatus" type="impl:TReturnStatus"/>

        </sequence>
   </complexType>

  </wsdl:schema>
 </wsdl:types>

    <wsdl:message name="srmReserveSpaceRequest">

      <wsdl:part name="srmReserveSpaceRequest" type="impl:srmReserveSpaceRequest"/>

   </wsdl:message>

   <wsdl:message name="srmReserveSpaceResponse">
      
      <wsdl:part name="srmReserveSpaceResponse" type="impl:srmReserveSpaceResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmReleaseSpaceRequest">
      
      <wsdl:part name="srmReleaseSpaceRequest" type="impl:srmReleaseSpaceRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmReleaseSpaceResponse">
      
      <wsdl:part name="srmReleaseSpaceResponse" type="impl:srmReleaseSpaceResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmUpdateSpaceRequest">
      
      <wsdl:part name="srmUpdateSpaceRequest" type="impl:srmUpdateSpaceRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmUpdateSpaceResponse">
      
      <wsdl:part name="srmUpdateSpaceResponse" type="impl:srmUpdateSpaceResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmCompactSpaceRequest">
      
      <wsdl:part name="srmCompactSpaceRequest" type="impl:srmCompactSpaceRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmCompactSpaceResponse">
      
      <wsdl:part name="srmCompactSpaceResponse" type="impl:srmCompactSpaceResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetSpaceMetaDataRequest">
      
      <wsdl:part name="srmGetSpaceMetaDataRequest" type="impl:srmGetSpaceMetaDataRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetSpaceMetaDataResponse">
      
      <wsdl:part name="srmGetSpaceMetaDataResponse" type="impl:srmGetSpaceMetaDataResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmChangeFileStorageTypeRequest">
      
      <wsdl:part name="srmChangeFileStorageTypeRequest" type="impl:srmChangeFileStorageTypeRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmChangeFileStorageTypeResponse">
      
      <wsdl:part name="srmChangeFileStorageTypeResponse" type="impl:srmChangeFileStorageTypeResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetSpaceTokenRequest">
      
      <wsdl:part name="srmGetSpaceTokenRequest" type="impl:srmGetSpaceTokenRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetSpaceTokenResponse">
      
      <wsdl:part name="srmGetSpaceTokenResponse" type="impl:srmGetSpaceTokenResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmSetPermissionRequest">
      
      <wsdl:part name="srmSetPermissionRequest" type="impl:srmSetPermissionRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmSetPermissionResponse">
      
      <wsdl:part name="srmSetPermissionResponse" type="impl:srmSetPermissionResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmReassignToUserRequest">
      
      <wsdl:part name="srmReassignToUserRequest" type="impl:srmReassignToUserRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmReassignToUserResponse">
      
      <wsdl:part name="srmReassignToUserResponse" type="impl:srmReassignToUserResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmCheckPermissionRequest">
      
      <wsdl:part name="srmCheckPermissionRequest" type="impl:srmCheckPermissionRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmCheckPermissionResponse">
      
      <wsdl:part name="srmCheckPermissionResponse" type="impl:srmCheckPermissionResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmMkdirRequest">
      
      <wsdl:part name="srmMkdirRequest" type="impl:srmMkdirRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmMkdirResponse">
      
      <wsdl:part name="srmMkdirResponse" type="impl:srmMkdirResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmRmdirRequest">
      
      <wsdl:part name="srmRmdirRequest" type="impl:srmRmdirRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmRmdirResponse">
      
      <wsdl:part name="srmRmdirResponse" type="impl:srmRmdirResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmRmRequest">
      
      <wsdl:part name="srmRmRequest" type="impl:srmRmRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmRmResponse">
      
      <wsdl:part name="srmRmResponse" type="impl:srmRmResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmLsRequest">
      
      <wsdl:part name="srmLsRequest" type="impl:srmLsRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmLsResponse">
      
      <wsdl:part name="srmLsResponse" type="impl:srmLsResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmMvRequest">
      
      <wsdl:part name="srmMvRequest" type="impl:srmMvRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmMvResponse">
      
      <wsdl:part name="srmMvResponse" type="impl:srmMvResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmPrepareToGetRequest">
      
      <wsdl:part name="srmPrepareToGetRequest" type="impl:srmPrepareToGetRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmPrepareToGetResponse">
      
      <wsdl:part name="srmPrepareToGetResponse" type="impl:srmPrepareToGetResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmPrepareToPutRequest">
      
      <wsdl:part name="srmPrepareToPutRequest" type="impl:srmPrepareToPutRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmPrepareToPutResponse">
      
      <wsdl:part name="srmPrepareToPutResponse" type="impl:srmPrepareToPutResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmCopyRequest">
      
      <wsdl:part name="srmCopyRequest" type="impl:srmCopyRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmCopyResponse">
      
      <wsdl:part name="srmCopyResponse" type="impl:srmCopyResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmRemoveFilesRequest">
      
      <wsdl:part name="srmRemoveFilesRequest" type="impl:srmRemoveFilesRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmRemoveFilesResponse">
      
      <wsdl:part name="srmRemoveFilesResponse" type="impl:srmRemoveFilesResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmReleaseFilesRequest">
      
      <wsdl:part name="srmReleaseFilesRequest" type="impl:srmReleaseFilesRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmReleaseFilesResponse">
      
      <wsdl:part name="srmReleaseFilesResponse" type="impl:srmReleaseFilesResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmPutDoneRequest">
      
      <wsdl:part name="srmPutDoneRequest" type="impl:srmPutDoneRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmPutDoneResponse">
      
      <wsdl:part name="srmPutDoneResponse" type="impl:srmPutDoneResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmAbortRequestRequest">
      
      <wsdl:part name="srmAbortRequestRequest" type="impl:srmAbortRequestRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmAbortRequestResponse">
      
      <wsdl:part name="srmAbortRequestResponse" type="impl:srmAbortRequestResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmAbortFilesRequest">
      
      <wsdl:part name="srmAbortFilesRequest" type="impl:srmAbortFilesRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmAbortFilesResponse">
      
      <wsdl:part name="srmAbortFilesResponse" type="impl:srmAbortFilesResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmSuspendRequestRequest">
      
      <wsdl:part name="srmSuspendRequestRequest" type="impl:srmSuspendRequestRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmSuspendRequestResponse">
      
      <wsdl:part name="srmSuspendRequestResponse" type="impl:srmSuspendRequestResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmResumeRequestRequest">
      
      <wsdl:part name="srmResumeRequestRequest" type="impl:srmResumeRequestRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmResumeRequestResponse">
      
      <wsdl:part name="srmResumeRequestResponse" type="impl:srmResumeRequestResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmStatusOfGetRequestRequest">
      
      <wsdl:part name="srmStatusOfGetRequestRequest" type="impl:srmStatusOfGetRequestRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmStatusOfGetRequestResponse">
      
      <wsdl:part name="srmStatusOfGetRequestResponse" type="impl:srmStatusOfGetRequestResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmStatusOfPutRequestRequest">
      
      <wsdl:part name="srmStatusOfPutRequestRequest" type="impl:srmStatusOfPutRequestRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmStatusOfPutRequestResponse">
      
      <wsdl:part name="srmStatusOfPutRequestResponse" type="impl:srmStatusOfPutRequestResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmStatusOfCopyRequestRequest">
      
      <wsdl:part name="srmStatusOfCopyRequestRequest" type="impl:srmStatusOfCopyRequestRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmStatusOfCopyRequestResponse">
      
      <wsdl:part name="srmStatusOfCopyRequestResponse" type="impl:srmStatusOfCopyRequestResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetRequestSummaryRequest">
      
      <wsdl:part name="srmGetRequestSummaryRequest" type="impl:srmGetRequestSummaryRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetRequestSummaryResponse">
      
      <wsdl:part name="srmGetRequestSummaryResponse" type="impl:srmGetRequestSummaryResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmExtendFileLifeTimeRequest">
      
      <wsdl:part name="srmExtendFileLifeTimeRequest" type="impl:srmExtendFileLifeTimeRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmExtendFileLifeTimeResponse">
      
      <wsdl:part name="srmExtendFileLifeTimeResponse" type="impl:srmExtendFileLifeTimeResponse"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetRequestIDRequest">
      
      <wsdl:part name="srmGetRequestIDRequest" type="impl:srmGetRequestIDRequest"/>
 
   </wsdl:message>

   <wsdl:message name="srmGetRequestIDResponse">
      
      <wsdl:part name="srmGetRequestIDResponse" type="impl:srmGetRequestIDResponse"/>
 
   </wsdl:message>

   <wsdl:portType name="ISRM">
    
      <wsdl:operation name="srmReserveSpace" >
         <wsdl:documentation>
            lifetimeOfSpaceToReserve is not needed if requesting permanent
            space. 
            
            SRM can provide default size and lifetime if not supplied.
            storageSystemInfo is optional in case storage system
            requires additional security check.

            If sizeOfTotalSpaceDesired is not specified, the SRM
            will return its default quota.
        </wsdl:documentation>

         <wsdl:input name="srmReserveSpaceRequest" message="impl:srmReserveSpaceRequest"/>

         <wsdl:output name="srmReserveSpaceResponse" message="impl:srmReserveSpaceResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmReleaseSpace" >
         <wsdl:documentation>

            forceFileRelease=false is default.  This means that
            the space will not be released if it has files that
            are still pinned in the space.  To release the space
            regardless of the files it contains and their status
            forceFileRelease=true must be specified.

            To be safe, a request to release a reserved space
            that has an on-going file transfer will return false,
            even forceFileRelease= true.

            When space is releasable and forceFileRelease=true,
            all the files in the space are released, even in durable
            or permanent space. 

            When space is released, the files in that space are
            treated according to their types: If permanent, keep
            it. If durable, perform action at the end of lifetime.
            If Volatile, release it at the end of lifetime.

         </wsdl:documentation>

         <wsdl:input name="srmReleaseSpaceRequest" message="impl:srmReleaseSpaceRequest"/>

         <wsdl:output name="srmReleaseSpaceResponse" message="impl:srmReleaseSpaceResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmUpdateSpace" >

         <wsdl:documentation>

            Includes size and time

            If neither size nor lifetime are supplied in the input, then
            return will be null.

            newSize is the new actual size of the space, so has
            to be positive.

            newLifetimeFromCallingTime is the new lifetime requested
            regardless of the previous lifetime, and has to be positive.
             It might even be shorter than the remaining lifetime
            at the time of the call.

         </wsdl:documentation>
         <wsdl:input name="srmUpdateSpaceRequest" message="impl:srmUpdateSpaceRequest"/>

         <wsdl:output name="srmUpdateSpaceResponse" message="impl:srmUpdateSpaceResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmCompactSpace" >

         <wsdl:documentation>

            This function is called to reclaim the space for all
            released files and update space size in Durable and
            Permanent spaces. Files not released are not going to
            be removed (even if lifetime expired.)  

            doDynamicCompactFromNowOn=false by default, which implies
            that only a one time compactSpace will take place.

            If doDynamicCompactFromNowOn=true, then the space of
            released files will be automatically compacted until
            the value of doDynamicCompactFromNowOn is set to false. 

            When space is compacted, the files in that space do
            not have to be removed by the SRM.  For example, the
            SRM can choose to move them to volatile space.  The
            client will only perceive that the compacted space is
            now available to them.

            To physically force a removal of a file, the client
            should use srmRm.

         </wsdl:documentation>
         <wsdl:input name="srmCompactSpaceRequest" message="impl:srmCompactSpaceRequest"/>

         <wsdl:output name="srmCompactSpaceResponse" message="impl:srmCompactSpaceResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmGetSpaceMetaData" >

         <wsdl:documentation>
             
         </wsdl:documentation>
         <wsdl:input name="srmGetSpaceMetaDataRequest" message="impl:srmGetSpaceMetaDataRequest"/>

         <wsdl:output name="srmGetSpaceMetaDataResponse" message="impl:srmGetSpaceMetaDataResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmChangeFileStorageType" >

         <wsdl:documentation>

            Applies to both dir and dile

            Either path must be supplied.

            If a path is pointing to a directory, then the effect
            is recursive for all the files in this directory.

            Space allocation and de-allocation maybe involved.

         </wsdl:documentation>
         <wsdl:input name="srmChangeFileStorageTypeRequest" message="impl:srmChangeFileStorageTypeRequest"/>

         <wsdl:output name="srmChangeFileStorageTypeResponse" message="impl:srmChangeFileStorageTypeResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmGetSpaceToken" >

         <wsdl:documentation>

            If userSpaceTokenDescription is null, returns all space
            tokens this user owns

            If the user assigned the same name to multiple space
            reservations, he may get back multiple space tokens.

         </wsdl:documentation>
         <wsdl:input name="srmGetSpaceTokenRequest" message="impl:srmGetSpaceTokenRequest"/>

         <wsdl:output name="srmGetSpaceTokenResponse" message="impl:srmGetSpaceTokenResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmSetPermission" >

         <wsdl:documentation>
            Applies to both dir and file

            Support for srmSetPermission is optional.

            In this version, TPermissionMode is identical to Unix
            permission modes.

            User permissions are provided in order to support dynamic
            user-level permission assignment similar to Access Control
            Lists (ACLs).

            Permissions can be assigned to set of users and sets
            of groups, but only a single owner.

            In this version, SRMs do not provide any group operations
            (setup, modify, remove, etc.)

            Groups are assumed to be setup before srmSetPermission
            is used.

            If TPermissionType is ADD or CHANGE, and TPermissionMode
            is null, then it is assumed that TPermissionMode is READ only.

            If TPermissionType is REMOVE, then the TPermissionMode is ignored.

         </wsdl:documentation>
         <wsdl:input name="srmSetPermissionRequest" message="impl:srmSetPermissionRequest"/>

         <wsdl:output name="srmSetPermissionResponse" message="impl:srmSetPermissionResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmReassignToUser" >

         <wsdl:documentation>

            After lifeTimeOfThisAssignment time period, or when
            assignedUser obtained a copy of files through srmCopy(),
            the files involved are released and space is compacted
            automatically, which ever is first.

            This function implies actual lifetime of file/space
            involved is extended up to the lifeTimeOfThisAssignment.

            The caller must be the owner of the files to be reassigned.

            permission is omitted because it has to be READ permission.

            lifeTimeOfThisAssignment is relative to the calling
            time. So it must be positive.

            If the path here is a directory, then all the files
            under it are included recursively.

            If there are any files involved that are released before
            this function call, then these files will not be involved
            in reassignment, even if they are still in the space.

            If a compact() is called  before this function is complete,
            then this function has priority over compact().  Compact
            will be done automatically as soon as files are copies
            to the assignedUser. Whether to dynamically compact
            or not is an implementation choice.

         </wsdl:documentation>
         <wsdl:input name="srmReassignToUserRequest" message="impl:srmReassignToUserRequest"/>

         <wsdl:output name="srmReassignToUserResponse" message="impl:srmReassignToUserResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmCheckPermission" >

         <wsdl:documentation>

            When checkInLocalCacheOnly=true, then SRM will only
            check files in its local cache. Otherwise, if a file
            is not in its local cache, then SRM will go to the siteURL
            to check the user permission.

            If checkInLocalCacheOnly = false, SRM can choose to
            always check the siteURL for user permission of each
            file. It is also ok if SRM choose to check its local
            cache first, if a file exists and the user has permission,
            return that permission. Otherwise, check the siteURL
            and return permission.

         </wsdl:documentation>
         <wsdl:input name="srmCheckPermissionRequest" message="impl:srmCheckPermissionRequest"/>

         <wsdl:output name="srmCheckPermissionResponse" message="impl:srmCheckPermissionResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmMkdir" >

         <wsdl:documentation>

            Consistent with unix, recursive creation of directories
            is not supported.

            newDiretoryPath can include paths, as long as all sub
            directories exist.

         </wsdl:documentation>
         <wsdl:input name="srmMkdirRequest" message="impl:srmMkdirRequest"/>

         <wsdl:output name="srmMkdirResponse" message="impl:srmMkdirResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmRmdir" >

         <wsdl:documentation>

            applies to dir

            doRecursiveRemove is false by default.  

            To distinguish from srmRm(), this function is for directories only.

         </wsdl:documentation>
         <wsdl:input name="srmRmdirRequest" message="impl:srmRmdirRequest"/>

         <wsdl:output name="srmRmdirResponse" message="impl:srmRmdirResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmRm" >

         <wsdl:documentation>

            Applies to files

            To distinguish from srmRmDir(), this function applies to files only.

         </wsdl:documentation>
         <wsdl:input name="srmRmRequest" message="impl:srmRmRequest"/>

         <wsdl:output name="srmRmResponse" message="impl:srmRmResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmLs" >

         <wsdl:documentation>

            Applies to both dir and file

            fullDetailedList=false by default.

            For directories, only path is required to be returned.

            For files, path and size are required to be returned.

            If fullDetailedList=true, the full details are returned.

            For directories, path and userPermission are required
            to be returned.

            For files, path, size, userPermission, lastModificationTime,
            typeOfThisFile, and lifetimeLeft are required to be
            returned, similar to unix command ls -l.

            If allLevelRecursive=true then file lists of all level
            below current will be provided as well.

            If allLevelRecursive is "true" it dominates, i.e. ignore
            numOfLevels.  If allLevelRecursive is "false" or missing,
            then do numOfLevels.  If numOfLevels is "0" (zero) or
            missing, assume a single level.  If both allLevelRecursive
            and numOfLevels are missing, assume a single level.

            When listing for a particular type specified by "fileStorageType",
            only the files with that type will be in the output. 

            Empty directories will be returned.

            We recommend width first in the listing.

            We recommend that list of directories come before list
            of files in the return array (details). 

         </wsdl:documentation>
         <wsdl:input name="srmLsRequest" message="impl:srmLsRequest"/>

         <wsdl:output name="srmLsResponse" message="impl:srmLsResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmMv" >

         <wsdl:documentation>

            Applies to both dir and file

            Authorization checks need to be performed on both fromPath
            and toPath. 

         </wsdl:documentation>
         <wsdl:input name="srmMvRequest" message="impl:srmMvRequest"/>

         <wsdl:output name="srmMvResponse" message="impl:srmMvResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmPrepareToGet" >

         <wsdl:documentation>

            The userRequestDescription is a user designated name
            for the request.  It can be used in the getRequestID
            method to get back the system assigned request ID.  

            Only  pull mode is supported.

            SRM  assigns the requestToken at this time.

            Normally this call will be followed by srmRelease().

            "retryTime" means: if all the file transfer for this
            request are complete, then try previously failed transfers
            for a total time period of "retryTime".

            In case that the retries fail, the return should include
            an explanation of why the retries failed.

            This call is an asynchronous (non-blocking) call. To
            get subsequent status and results, separate calls should
            be made.

            When the file is ready for the user, the file is implicitly
            pinned in the cache and lifetime will be enforced. 

            The invocation of srmReleaseFile() is expected for finished
            files later on.

         </wsdl:documentation>
         <wsdl:input name="srmPrepareToGetRequest" message="impl:srmPrepareToGetRequest"/>

         <wsdl:output name="srmPrepareToGetResponse" message="impl:srmPrepareToGetResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmPrepareToPut" >

         <wsdl:documentation>

            Only push mode is supported for srmPrepareToPut.

            StFN ("toSURLInfo" in the TPutFileRequest) has to be
            local. If stFN is not specified, SRM will name it automatically
            and put it in the specified user space. This will be
            returned as part of the "transfer URL".

            srmPutDone() is expected after each file is "put" into
            the allocated space.

            The lifetime of the file starts as soon as SRM get the
            srmPutDone().  If srmPutDone() is not provided then
            the files in that space are subject to removal when
            the space lifetime expires.

            "retryTime" is meaningful here only when the file destination
            is not a local disk, such as tape or MSS.

            In case that the retries fail, the return should include
            an explanation of why the retires failed.

         </wsdl:documentation>
         <wsdl:input name="srmPrepareToPutRequest" message="impl:srmPrepareToPutRequest"/>

         <wsdl:output name="srmPrepareToPutResponse" message="impl:srmPrepareToPutResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmCopy" >

         <wsdl:documentation>

            Pull mode: copy from remote location to SRM. (e.g. from
            remote to MSS.)

            Push mode: copy from SRM to remote location.

            Always release files from source after copy is done.

            When removeSourceFiles=true, then SRM will  remove the
            source files on behalf of the caller after copy is done. 

            In pull mode, send srmRelease() to remote location when
            transfer is done.

            If in push mode, then after transfer is done, notify
            the caller. User can then release the file. If user
            releases a file being copied to another location before
            it is done, then refuse to release.

            Note there is no protocol negotiation with the client
            for this request.

            "retryTime" means: if all the file transfer for this
            request are complete, then try previously failed transfers
            for a total time period of "retryTime".

            In case that the retries fail, the return should include
            an explanation of why the retires failed.

            When both fromSURL and toSURL are local, perform local copy

            Empty directories are copied as well.

         </wsdl:documentation>
         <wsdl:input name="srmCopyRequest" message="impl:srmCopyRequest"/>

         <wsdl:output name="srmCopyResponse" message="impl:srmCopyResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmRemoveFiles" >

         <wsdl:documentation>

            If requestToken is not provided, then the SRM  will
             do nothing.

            It has the effect of a release before the file is removed.

            If file is not in cache, do nothing

         </wsdl:documentation>
         <wsdl:input name="srmRemoveFilesRequest" message="impl:srmRemoveFilesRequest"/>

         <wsdl:output name="srmRemoveFilesResponse" message="impl:srmRemoveFilesResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmReleaseFiles" >

         <wsdl:documentation>

            dir is ok. Will release recursively for dirs.

            If requestToken is not provided, then the SRM  will
            release all the files specified by the siteURLs owned
            by this user, regardless of the requestToken.

            If requestToken is not provided, then authorizationID is needed.
             It may be inferred or provide in the call.

            Releasing  files will be followed by compacting space,
            if doDynamicCompactFromNowOn was set to true in a previous
            srmCompactSpace call.

         </wsdl:documentation>
         <wsdl:input name="srmReleaseFilesRequest" message="impl:srmReleaseFilesRequest"/>

         <wsdl:output name="srmReleaseFilesResponse" message="impl:srmReleaseFilesResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmPutDone" >

         <wsdl:documentation>

            Called by user after srmPut()

         </wsdl:documentation>
         <wsdl:input name="srmPutDoneRequest" message="impl:srmPutDoneRequest"/>

         <wsdl:output name="srmPutDoneResponse" message="impl:srmPutDoneResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmAbortRequest" >

         <wsdl:documentation>

            Abort all files in this request regardless of the state.
            Expired files are released.

         </wsdl:documentation>
         <wsdl:input name="srmAbortRequestRequest" message="impl:srmAbortRequestRequest"/>

         <wsdl:output name="srmAbortRequestResponse" message="impl:srmAbortRequestResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmAbortFiles" >

         <wsdl:documentation>

            Abort all files in this call  regardless of the state

         </wsdl:documentation>
         <wsdl:input name="srmAbortFilesRequest" message="impl:srmAbortFilesRequest"/>

         <wsdl:output name="srmAbortFilesResponse" message="impl:srmAbortFilesResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmSuspendRequest" >

         <wsdl:documentation>

            Suspend all files in this request  until srmResumeRequest
            is issued

         </wsdl:documentation>
         <wsdl:input name="srmSuspendRequestRequest" message="impl:srmSuspendRequestRequest"/>

         <wsdl:output name="srmSuspendRequestResponse" message="impl:srmSuspendRequestResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmResumeRequest" >

         <wsdl:documentation>

                Resume  suspended  files in this request

         </wsdl:documentation>
         <wsdl:input name="srmResumeRequestRequest" message="impl:srmResumeRequestRequest"/>

         <wsdl:output name="srmResumeRequestResponse" message="impl:srmResumeRequestResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmStatusOfGetRequest" >

         <wsdl:documentation>

            If arrayOfFromSURLs is not provided, returns status
            for all the file requests in this request.

         </wsdl:documentation>
         <wsdl:input name="srmStatusOfGetRequestRequest" message="impl:srmStatusOfGetRequestRequest"/>

         <wsdl:output name="srmStatusOfGetRequestResponse" message="impl:srmStatusOfGetRequestResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmStatusOfPutRequest" >

         <wsdl:documentation>

            If arrayOfToSURLs is not provided, returns status for
            all the file requests in this request.

         </wsdl:documentation>
         <wsdl:input name="srmStatusOfPutRequestRequest" message="impl:srmStatusOfPutRequestRequest"/>

         <wsdl:output name="srmStatusOfPutRequestResponse" message="impl:srmStatusOfPutRequestResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmStatusOfCopyRequest" >

         <wsdl:documentation>

            If arrayOfFromSURLs and/or arrayOfToSURLs are not provided,
            return status for all the file requests in this request.

         </wsdl:documentation>
         <wsdl:input name="srmStatusOfCopyRequestRequest" message="impl:srmStatusOfCopyRequestRequest"/>

         <wsdl:output name="srmStatusOfCopyRequestResponse" message="impl:srmStatusOfCopyRequestResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmGetRequestSummary" >

         <wsdl:documentation>

         </wsdl:documentation>
         <wsdl:input name="srmGetRequestSummaryRequest" message="impl:srmGetRequestSummaryRequest"/>

         <wsdl:output name="srmGetRequestSummaryResponse" message="impl:srmGetRequestSummaryResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmExtendFileLifeTime" >

         <wsdl:documentation>

            newLifeTime is relative to the calling time. Lifetime
            will be set from the calling time for the specified period.

            The number of lifetime extensions maybe limited by SRM
            according to its policies.

            IsExtended = false if SRM refuse to do it. (set newTimeExtended
            = 0 in this case.)

            If original lifetime is longer than the requested one,
            then the requested one will be assigned.

            If newLifeTime is not specified, the SRM can use its
            default to assign the newLifeTime.

         </wsdl:documentation>
         <wsdl:input name="srmExtendFileLifeTimeRequest" message="impl:srmExtendFileLifeTimeRequest"/>

         <wsdl:output name="srmExtendFileLifeTimeResponse" message="impl:srmExtendFileLifeTimeResponse"/>

      </wsdl:operation>

      <wsdl:operation name="srmGetRequestID" >

         <wsdl:documentation>

            If userRequestDescription is null, returns all requests
            this user has.

            If the user assigned the same name to multiple requests,
            he may get back multiple request IDs each with the time
            the request was made.	

         </wsdl:documentation>
         <wsdl:input name="srmGetRequestIDRequest" message="impl:srmGetRequestIDRequest"/>

         <wsdl:output name="srmGetRequestIDResponse" message="impl:srmGetRequestIDResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="srmSoapBinding" type="impl:ISRM">

      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="srmReserveSpace">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmReserveSpaceRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmReserveSpaceResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmReleaseSpace">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmReleaseSpaceRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmReleaseSpaceResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmUpdateSpace">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmUpdateSpaceRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmUpdateSpaceResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmCompactSpace">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmCompactSpaceRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmCompactSpaceResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmGetSpaceMetaData">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmGetSpaceMetaDataRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmGetSpaceMetaDataResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmChangeFileStorageType">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmChangeFileStorageTypeRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmChangeFileStorageTypeResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmGetSpaceToken">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmGetSpaceTokenRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmGetSpaceTokenResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmSetPermission">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmSetPermissionRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmSetPermissionResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmReassignToUser">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmReassignToUserRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmReassignToUserResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmCheckPermission">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmCheckPermissionRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmCheckPermissionResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmMkdir">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmMkdirRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmMkdirResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmRmdir">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmRmdirRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmRmdirResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmRm">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmRmRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmRmResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmLs">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmLsRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmLsResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmMv">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmMvRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmMvResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmPrepareToGet">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmPrepareToGetRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmPrepareToGetResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmPrepareToPut">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmPrepareToPutRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmPrepareToPutResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmCopy">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmCopyRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmCopyResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmRemoveFiles">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmRemoveFilesRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmRemoveFilesResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmReleaseFiles">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmReleaseFilesRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmReleaseFilesResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmPutDone">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmPutDoneRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmPutDoneResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmAbortRequest">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmAbortRequestRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmAbortRequestResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmAbortFiles">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmAbortFilesRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmAbortFilesResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmSuspendRequest">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmSuspendRequestRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmSuspendRequestResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmResumeRequest">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmResumeRequestRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmResumeRequestResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmStatusOfGetRequest">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmStatusOfGetRequestRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmStatusOfGetRequestResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmStatusOfPutRequest">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmStatusOfPutRequestRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmStatusOfPutRequestResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmStatusOfCopyRequest">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmStatusOfCopyRequestRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmStatusOfCopyRequestResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmGetRequestSummary">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmGetRequestSummaryRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmGetRequestSummaryResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmExtendFileLifeTime">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmExtendFileLifeTimeRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmExtendFileLifeTimeResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="srmGetRequestID">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="srmGetRequestIDRequest">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:input>

         <wsdl:output name="srmGetRequestIDResponse">

            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn://StorageResourceManagerV2.1.1"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="SRMService">

      <wsdl:port name="srm" binding="impl:srmSoapBinding">
         <wsdl:documentation>

               the following location of the service is specific to the 
               particular deployment and is not part of the specification

         </wsdl:documentation>
         <wsdlsoap:address location="https://srm.lbl.gov:12345/v2_1_1/srm"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
