XML Schemas | Teradata Data Mover - Data Mover XML Schemas - Teradata Data Mover

Teradata® Data Mover User Guide - 20.01

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
Lake
VMware
Product
Teradata Data Mover
Release Number
20.01
Published
November 2023
Language
English (United States)
Last Update
2023-12-05
dita:mapPath
hlv1700545853003.ditamap
dita:ditavalPath
mpm1591127278842.ditaval
dita:id
don1467241476387
Product Category
Analytical Ecosystem
<?xml version="1.0" encoding="UTF-8"?>

 <!-- 
 Copyright (C) 2009-2015  by Teradata Corporation.
 All Rights Reserved.
 TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET 
 -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://schemas.teradata.com/dataMover/v2009" xmlns="http://schemas.teradata.com/dataMover/v2009"
	elementFormDefault="qualified" attributeFormDefault="unqualified">

	<!-- dmMessageBase - The base for all DM messages -->
	<xsd:complexType name="dmMessageBase">
		<xsd:sequence>
		<!--
			Source identifier. Source should use set message selector to collect replies
			with correlationId set to this value 
		 -->
			<xsd:element name="source" type="xsd:string" default="unidentified" minOccurs="0" />
		</xsd:sequence>
		<!--
			The schema version is required and should match the schema file used
			to define the xml
		-->
		<xsd:attribute name="dmVersion" type="xsd:string"
			use="optional" />
	</xsd:complexType>

	<!-- dmCommandBase - The base for all commands into DM -->
	<xsd:complexType name="dmCommandBase">
		<xsd:complexContent>
			<xsd:extension base="dmMessageBase">
				<xsd:sequence>
					<!-- 
						Optional user-defined correlation id that will be sent back with the response 
					 -->
					<xsd:element name="id" type="xsd:long" default="0" minOccurs="0" />
					<xsd:element name="dmSecurity" type="dmCheckSecurityType" minOccurs="0" />
					
					<!-- System - host name - that is initiating the commandLine request -->
					<xsd:element name="host_name" type="xsd:string" 
						minOccurs="0" maxOccurs="1" default="undefined" />
						
					<!-- System - IP address - that is initiating the commandLine request -->
					<xsd:element name="host_address" type="xsd:string" 
						minOccurs="0" maxOccurs="1" default="undefined" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!--  Define Command Header -->
	<xsd:complexType name="commandHeaderType">
		<xsd:sequence>
			<xsd:element name="command_action" type="xsd:string" />
			<xsd:element name="message" minOccurs="0" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<!--  Define Output Header -->
	<xsd:complexType name="warningType">
		<xsd:complexContent>
			<xsd:extension base="problemType">
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="errorType">
		<xsd:complexContent>
			<xsd:extension base="problemType">
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="problemType">
		<xsd:sequence>
			<xsd:element name="code" type="xsd:string" />
			<xsd:element name="message" type="xsd:string" />
			<xsd:element name="data" type="xsd:string"
						nillable="true"	minOccurs="0" maxOccurs="unbounded" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="outputHeaderType">
		<xsd:complexContent>
			<xsd:extension base="commandHeaderType">
				<xsd:sequence>
					<xsd:element name="id" type="xsd:long" default="0" />
					<xsd:element name="status" type="xsd:boolean" default="true" />
			<!-- errors -->
					<xsd:element name="error" type="errorType" minOccurs="0"
						maxOccurs="unbounded" />
			<!-- warnings -->
					<xsd:element name="warning" type="warningType"
						minOccurs="0" maxOccurs="unbounded" />
                    <!-- daemonID -->
                    <xsd:element name="daemonID" type="xsd:string"
                                 minOccurs="0" />
                </xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<!-- dmOutputBase - The base for all Daemon response messages to commands -->
	<xsd:complexType name="dmOutputBase">
		<xsd:complexContent>
			<xsd:extension base="dmMessageBase">
				<xsd:sequence>
					<!--  Command Header -->
					<xsd:element name="commandHeader" minOccurs="0" type="outputHeaderType" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<!-- dmAgentCommandBase - The base for all Agent to Daemon messages -->
	<xsd:complexType name="dmAgentCommandBase">
		<xsd:complexContent>
			<xsd:extension base="dmMessageBase">
				<xsd:sequence>
					<!--  Command Header -->
					<xsd:element name="commandHeader" minOccurs="0" type="commandHeaderType" />
					<xsd:element name="id" type="xsd:long" default="0" minOccurs="0" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!-- dmAck - for acknowledgment information -->
	<xsd:element name="dmAck">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="securityEnabled" type="xsd:boolean" 
							default="false" maxOccurs="1" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- DMQuery -->
	<xsd:element name="dmQuery">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				
						<!-- source_tdpid Checks, Source Teradata database -->
						<xsd:element name="source_tdpid" nillable="false" type="xsd:string" />

						<!-- source_user TD_API_user, Checks, Source Teradata log on id -->
						<xsd:element name="source_user" minOccurs="0" type="xsd:string" />
						<!--
							source_password 123456789, (optional)Source Teradata log on
							password
						-->
						<xsd:element name="source_password" minOccurs="0"
							type="xsd:string" />
						<!--
							source_password_encrypted y1rX3DXZNz (optional)Encrypted source
							Teradata log on password
						-->
						<xsd:element name="source_password_encrypted"
							minOccurs="0" type="xsd:string" />
						<!--
							source_logon_mechanism NTLM, (optional)Logon mechanism to use
							when logging on to source system
						-->
						<xsd:element name="source_logon_mechanism" minOccurs="0"
							type="xsd:string" />
						<!--
							source_logon_mechanism_data joe@domain1 @@mypassword
							(optional)Additional parameters needed for the logon mechanism
							being used
						-->
						<xsd:element name="source_logon_mechanism_data"
							minOccurs="0" type="xsd:string" />
						<xsd:element name="source_account_id" minOccurs="0"
							type="xsd:string" />
							
						<!-- querying only a specific database -->
						<xsd:element name="database" minOccurs="0" type="xsd:string" />
							
						<!--
							dir /user/tptapi/lists, (optional)Output directory for object
							list.
						-->
						<xsd:element name="dir" minOccurs="0" type="xsd:string" />
						<!--
							object_list objectlist.xml, (optional)Output file name for the
							object list
						-->
						<xsd:element name="object_list" minOccurs="0" type="xsd:string" />
						<!--
							database db1 (optional)Limit query to this database. Multiple
							databases can be specified by repeating the same option with
							different databases
						-->
						<xsd:element name="limit_to_database" minOccurs="0"
							maxOccurs="unbounded" type="xsd:string" />
						<!--
							replication_group gp1, (optional)Limit query to objects in this
							replication group. Multiple replication groups can be specified
							by repeating the same option with different replication groups
						-->
						<xsd:element name="limit_to_replication_group"
							minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
							<xsd:element name="setQueryBand" minOccurs="0"
							type="xsd:boolean" default="false" />
							<xsd:element name="queryBand" minOccurs="0"
							type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmDatabaseVersion -->
	<xsd:element name="dmDatabaseVersion">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>

						<!-- source_tdpid Checks, Source Teradata database -->
						<xsd:element name="source_tdpid" nillable="false" type="xsd:string" />

						<!-- source_user TD_API_user, Checks, Source Teradata log on id -->
						<xsd:element name="source_user" nillable="false" type="xsd:string" />
						<!--
							source_password 123456789, (optional)Source Teradata log on
							password
						-->
						<xsd:element name="source_password" minOccurs="0"
							type="xsd:string" />
						<!--
							source_password_encrypted y1rX3DXZNz (optional)Encrypted source
							Teradata log on password
						-->
						<xsd:element name="source_password_encrypted"
							minOccurs="0" type="xsd:base64Binary" />
						<!--
							source_logon_mechanism NTLM, (optional)Logon mechanism to use
							when logging on to source system
						-->
						<xsd:element name="source_logon_mechanism" minOccurs="0"
							type="xsd:string" />
						<!--
							source_logon_mechanism_data joe@domain1 @@mypassword
							(optional)Additional parameters needed for the logon mechanism
							being used
						-->
						<xsd:element name="source_logon_mechanism_data"
							minOccurs="0" type="xsd:string" />
						<xsd:element name="source_account_id" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- Define output from dmDatabaseVersion -->
	<xsd:element name="dmDatabaseVersionOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="version" nillable="false" type="xsd:string" />
						<xsd:element name="majorVersion" nillable="false"
							type="xsd:int" />
						<xsd:element name="minorVersion" nillable="false"
							type="xsd:int" />
						<xsd:element name="maintenanceVersion" nillable="false"
							type="xsd:int" />
						<xsd:element name="efixVersion" nillable="false" type="xsd:int" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="databaseOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
				<!-- Databases to be copied -->
						<xsd:element name="database" minOccurs="0"
							maxOccurs="unbounded" type="databaseType" />
				<!--  Triggers to be copied -->
						<xsd:element ref="triggers" minOccurs="0" />
				
				<!--  Indices to be copied -->
						<xsd:element ref="indices" minOccurs="0" />
				<!--  Views to be copied -->
						<xsd:element ref="views" minOccurs="0" />
				<!--  Journals to be copied -->
						<xsd:element ref="journals" minOccurs="0" />
				<!--  Macros to be copied -->
						<xsd:element ref="macros" minOccurs="0" />
				<!--  SQL SP to be copied -->
						<xsd:element ref="stored_procedures" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
			
	<!-- Valid Selection values for objects -->
	<xsd:simpleType name="selection">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="included" />
			<xsd:enumeration value="excluded" />
			<!-- selection="all" is valid only for Databases -->
			<xsd:enumeration value="all" />
			<xsd:enumeration value="unselected" />
		</xsd:restriction>
	</xsd:simpleType>

	<!-- Cloud Staging Area Type -->
	<xsd:complexType name="cloudStagingArea">
		<xsd:sequence>
			<xsd:element name="name" minOccurs="0" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<!-- Database -->
	<xsd:complexType name="databaseType">
		<xsd:sequence>
			<xsd:element name="name" minOccurs="1" maxOccurs="1"
				type="xsd:string" />
			<!-- option to use staging database -->
			
            <xsd:element name="source_staging_database" type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
			<!-- target_staging_database new tag used to replace staging_database -->
			<xsd:element name="target_staging_database" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />
			<!-- target_staging_database_for_table : new tag used to replace staging_database_for_table -->

			<xsd:element name="staging_database" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />
			<xsd:element name="staging_database_for_table" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />			            <xsd:element name="target_database" type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
            <!--  compare DDL of the source tables in the database
             with the target database tables -->
			<xsd:element name="compare_ddl" minOccurs="0" maxOccurs="1"
				type="triStateType" default="unspecified" />
			<xsd:element name="map" minOccurs="0" maxOccurs="1"  type="xsd:string" />
   			<xsd:element name="colocate" minOccurs="0" maxOccurs="1"  type="xsd:string" />
			<!--  compare journaling forward if table uses journaling -->
			<xsd:element name="journaling" minOccurs="0" maxOccurs="1"
				type="triStateType" default="unspecified" />
            <xsd:element name="database" minOccurs="0"
				maxOccurs="unbounded" type="databaseType" />
            <xsd:element name="table" minOccurs="0"
				maxOccurs="unbounded" type="tableType" />

		</xsd:sequence>
		<xsd:attribute name="replaceDatabase" type="triStateType" use="optional"/>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>
	
	<!-- Valid force utility values -->
	<xsd:simpleType name="force_utility">
		<xsd:restriction base="xsd:string">
			<xsd:pattern
				value="[Aa][Rr][Cc]|[Dd][Ss][Aa]|[Tt][Pp][Tt][Aa][Pp][Ii]|[Tt][Pp][Tt][Aa][Pp][Ii]_[Ll][Oo][Aa][Dd]|[Tt][Pp][Tt][Aa][Pp][Ii]_[Uu][Pp][Dd][Aa][Tt][Ee]" />
			<xsd:pattern
				value="[Tt][Pp][Tt][Aa][Pp][Ii]_[Ss][Tt][Rr][Ee][Aa][Mm]|[Jj][Dd][Bb][Cc]|[Ss][Qq][Ll][Hh]|[Hh][Aa][Dd][Oo][Oo][Pp]_[Cc][Oo][Nn][Nn][Ee][Cc][Tt][Oo][Rr]|[Tt][2][Tt]" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="booleanType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="triStateType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]|[Uu][Nn][Ss][Pp][Ee][Cc][Ii][Ff][Ii][Ee][Dd]"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="RowCountValidationType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Nn][Oo][Nn][Ee]|[Pp][Aa][Rr][Tt][Ii][Aa][Ll]|[Aa][Ll][Ll]"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="StagingToTargetType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Nn][Oo][Tt]_[Ss][Pp][Ee][Cc][Ii][Ff][Ii][Ee][Dd]|[Dd][Ee][Ll][Ee][Tt][Ee]_[Ii][Nn][Ss][Ee][Rr][Tt]|[Mm][Ee][Rr][Gg][Ee]|[Ii][Nn][Ss][Ee][Rr][Tt]_[Oo][Nn][Ll][Yy]|[Dd][Ee][Ll][Ee][Tt][Ee]_[Dd][Ii][Ss][Tt][Ii][Nn][Cc][Tt]_[Ii][Nn][Ss][Ee][Rr][Tt]"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="createModeType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Cc][Rr][Ee][Aa][Tt][Ee]|[Mm][Oo][Vv][Ee]"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<!--  Whether a job is static (job scripts has been modified) or dynamic (create/execute again) -->
	<xsd:simpleType name="jobType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="STATIC|DYNAMIC" />
		</xsd:restriction>
	</xsd:simpleType>

	<!--  Job Priority Level Type -->
	<xsd:simpleType name="jobPriorityType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Ll][Oo][Ww]|[Mm][Ee][Dd][Ii][Uu][Mm]|[Hh][Ii][Gg][Hh]|[Uu][Nn][Ss][Pp][Ee][Cc][Ii][Ff][Ii][Ee][Dd]" />
		</xsd:restriction>
	</xsd:simpleType>

	<!-- Job Definition -->
	<xsd:complexType name="jobDefinitionType">
		<xsd:complexContent>
			<xsd:extension base="dmCommandBase">
				<xsd:sequence>
					<!--
						job_name JOB1DAILY, (optional) job name for this job, must be
						unique. Auto-generated if not specified
					-->
					<xsd:element name="job_name" minOccurs="0" type="xsd:string" />

					<!-- internally use to indicate if this is create or move job -->
					<xsd:element name="create_mode" minOccurs="0" type="createModeType" />

					<!-- internally use to indicate job priority level -->
					<xsd:element name="job_priority" minOccurs="0" type="jobPriorityType" />

					<!-- internally use to determine whether user modified the job (static) 
							or should be recreated during runtime (dynamic) -->					
					<xsd:element name="job_type" minOccurs="0" type="jobType" />
					
					<!-- source_tdpid Checks, Source Teradata database -->
					<xsd:element name="source_tdpid" minOccurs="0" type="xsd:string" />

					<!-- source_user TD_API_user, Checks, Source Teradata log on id -->
					<xsd:element name="source_user" minOccurs="0" type="xsd:string" />
					<!--
						source_password 123456789, (optional)Source Teradata log on
						password
					-->
					<xsd:element name="source_password" minOccurs="0"
						type="xsd:string" />
					<!--
						source_password_encrypted y1rX3DXZNz (optional)Encrypted source
						Teradata log on password
					-->
					<xsd:element name="source_password_encrypted"
						minOccurs="0" type="xsd:string" />
						
					<xsd:element name="source_userid_pool" minOccurs="0"
						type="xsd:string" />	
					<!--
						source_logon_mechanism NTLM, (optional)Logon mechanism to use when
						logging on to source system
					-->
					<xsd:element name="source_logon_mechanism" minOccurs="0"
						type="xsd:string" />
					<!--
						source_logon_mechanism_data joe@domain1 @@mypassword
						(optional)Additional parameters needed for the logon mechanism
						being used
					-->
					<xsd:element name="source_logon_mechanism_data"
						minOccurs="0" type="xsd:string" />
					<xsd:element name="source_account_id" minOccurs="0"
						type="xsd:string" />

					<!-- source_session_charset Source Teradata session character set -->
					<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string" />

					<!--  source Aster system if any -->
					<xsd:element name="source_aster_system" minOccurs="0" maxOccurs="1" type="asterSystemType" />
					
					<!-- target_dbs Checks, Source Teradata database -->
					<xsd:element name="target_tdpid" minOccurs="0" type="xsd:string" />

					<!-- target_user TD_API_user, Source Teradata log on id -->
					<xsd:element name="target_user" minOccurs="0" type="xsd:string" />
					<!--
						source_password 123456789, (optional)Source Teradata log on
						password
					-->
					<xsd:element name="target_password" minOccurs="0"
						type="xsd:string" />
					<!--
						source_password_encrypted y1rX3DXZNz (optional)Encrypted source
						Teradata log on password
					-->
					<xsd:element name="target_password_encrypted"
						minOccurs="0" type="xsd:string" />
					<xsd:element name="target_userid_pool" minOccurs="0"
						type="xsd:string" />	
					<!--
						source_logon_mechanism NTLM, (optional)Logon mechanism to use when
						logging on to source system
					-->
					<xsd:element name="target_logon_mechanism" minOccurs="0"
						type="xsd:string" />
					<!--
						source_logon_mechanism_data joe@domain1 @@mypassword
						(optional)Additional parameters needed for the logon mechanism
						being used
					-->
					<xsd:element name="target_logon_mechanism_data"
						minOccurs="0" type="xsd:string" />
					<xsd:element name="target_account_id" minOccurs="0"
						type="xsd:string" />
						
					<!-- target_session_charset Source Teradata session character set -->
					<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string" />	
						
						<!--
						use_userpool true, (optional)weather to use the
						pool of target user Ids
					-->
					<xsd:element name="use_userid_pool" minOccurs="0"
						type="booleanType" />
					<xsd:element name="group_userid_pool" minOccurs="0"
						type="xsd:string" />						

					<!--  target Aster system if any -->
					<xsd:element name="target_aster_system" minOccurs="0" maxOccurs="1" type="asterSystemType" />
					
					<xsd:element name="data_streams" minOccurs="0" type="xsd:string"/>
					<xsd:element name="source_sessions" minOccurs="0" type="xsd:string"/>
					<xsd:element name="target_sessions" minOccurs="0" type="xsd:string"/>
					<xsd:element name="max_agents_per_task" minOccurs="0" type="xsd:string"/>
					<xsd:element name="response_timeout" minOccurs="0"
						type="xsd:int" default="10" />
					<!--
						sync this option is only used by the command line interface
						when set to true, command line will wait for the job to complete
						before exiting
					-->
					<xsd:element name="sync" type="booleanType"
						maxOccurs="1" minOccurs="0" />
					<xsd:element name="overwrite_existing_objects"
						minOccurs="0" type="triStateType" default="unspecified"/>
					
					<xsd:element name="freeze_job_steps" 
						minOccurs="0" type="triStateType" default="unspecified" />
						
					<!--
						force_utility (optional) force Data Mover to use the specified
						utility (dsa, t2t, arc, tptapi, tptapi_load, tptapi_update, tptapi_stream, jdbc)
					-->
					<xsd:element name="force_utility" minOccurs="0"
						type="force_utility" />
												
		            <xsd:element name="source_staging_database" type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
					<!-- target_staging_database new tag used to replace staging_database -->
					<xsd:element name="target_staging_database" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />
					<!-- target_staging_database_for_table : new tag used to replace staging_database_for_table -->

					<xsd:element name="staging_database" type="targetDatabaseType"  
						minOccurs="0" maxOccurs="1" />															
					<xsd:element name="staging_database_for_table" type="targetDatabaseType"  
						minOccurs="0" maxOccurs="1" />
           			 <xsd:element name="target_database" type="targetDatabaseType" 
           			 	maxOccurs="1" minOccurs="0" />
           			 <xsd:element name="use_foreign_server" type="useForeignServerType" 
           			 	maxOccurs="1" minOccurs="0" />
           			 	
			
					<xsd:element name="compare_ddl" minOccurs="0" maxOccurs="1"
						type="triStateType" default="unspecified" />
			
					<xsd:element name="log_level" minOccurs="0" type="xsd:int"
						default="0" />

					<!--  online archive -->
					<xsd:element name="online_archive" minOccurs="0" 
						type="triStateType" default="unspecified"/>
											
					<xsd:element name="log_to_event_table" minOccurs="0"
						maxOccurs="unbounded" type="xsd:string" />
					<xsd:element name="map" minOccurs="0" maxOccurs="1"  type="xsd:string" />
    				<xsd:element name="colocate" minOccurs="0" maxOccurs="1"  type="xsd:string" />
					<xsd:element name="enable_incremental_restore" minOccurs="0" type="triStateType" default="unspecified" />
					<xsd:element name="dsa_options" minOccurs="0" type="dsaOptionsType" />
					<!-- Aster Job level parameters. -->
					<xsd:element name="aster_options" minOccurs="0" type="asterOptionType" />
					<!-- Cloud Staging Area -->
					<xsd:element name="cloud_staging_area" minOccurs="0" type="cloudStagingArea" />

					<!-- Databases to be copied -->
					<xsd:element name="db_client_encryption" minOccurs="0" type="triStateType" default="unspecified"/>
					<xsd:element name="copy_stats" minOccurs="0" maxOccurs="1" type="triStateType" default="unspecified"/>
					<xsd:element name="database" minOccurs="0"
						maxOccurs="unbounded" type="databaseType" />

					<!--  Triggers to be copied -->
					<xsd:element ref="triggers" minOccurs="0" />

					<!--  Indices to be copied -->
					<xsd:element ref="indices" minOccurs="0" />
					
					<!--  Views to be copied -->
					<xsd:element ref="views" minOccurs="0" />
					
					<!--  Views to be copied -->
					<xsd:element ref="foreign_servers" minOccurs="0" />
					
					<!--  Function Aliases to be moved -->
					<xsd:element ref="function_aliases" minOccurs="0" />
					
					<!--  Journals to be copied -->
					<xsd:element ref="journals" minOccurs="0" />
		            
		            <!--  Macros to be copied -->
					<xsd:element ref="macros" minOccurs="0" />
					
					<!--  Schemas to be copied -->
					<xsd:element ref="schemas" minOccurs="0" />
					
					<!--  Procedures to be copied -->
					<xsd:element ref="stored_procedures" minOccurs="0" />

                    <!--  Functions to be copied -->
                    <xsd:element ref="functions" minOccurs="0" />

		            <!--  optional unit of work id -->
					<xsd:element name="uowid" minOccurs="0" type="xsd:string" />
					
					 <!--  optional query band parameter -->
					<xsd:element name="query_band" minOccurs="0" type="xsd:string" />
                    
                    <!--  optional enable CLI or TPT trace logging  -->
                    <xsd:element name="enable_trace_log" type="traceLogType" minOccurs="0" maxOccurs="1"/>
                    					
					<!--  optional arc parameter -->
					<xsd:element name="additional_arc_parameters" minOccurs="0" type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>


	
	<!-- Changed Job Definition, all the properties defined in JobDefinitionType are optional here -->
	<xsd:complexType name="changedJobDefinitionType">
		<xsd:complexContent>
			<xsd:extension base="dmCommandBase">
					<xsd:sequence>				
						<!--
							job_name JOB1DAILY, (optional) job name for this job, must be
							unique. 
						-->
						<xsd:element name="job_name" minOccurs="0" type="xsd:string" />
	
						<!-- internally use to indicate if this is create or move job -->
						<xsd:element name="create_mode" minOccurs="0" type="createModeType" />
	
						<!-- internally use to indicate job priority level -->
						<xsd:element name="job_priority" minOccurs="0" type="jobPriorityType" />
	
						<!-- internally use to determine whether user modified the job (static) 
								or should be recreated during runtime (dynamic) -->					
						<xsd:element name="job_type" minOccurs="0" type="jobType" />
						
						<!-- source_tdpid Checks, Source Teradata database -->
						<xsd:element name="source_tdpid" minOccurs="0" type="xsd:string" />
	
						<!-- source_user TD_API_user, Checks, Source Teradata log on id -->
						<xsd:element name="source_user" minOccurs="0" type="xsd:string" />
						<!--
							source_password 123456789, (optional)Source Teradata log on
							password
						-->
						<xsd:element name="source_password" minOccurs="0"
							type="xsd:string" />
						<!--
							source_password_encrypted y1rX3DXZNz (optional)Encrypted source
							Teradata log on password
						-->
						<xsd:element name="source_password_encrypted"
							minOccurs="0" type="xsd:string" />
							
						<xsd:element name="source_userid_pool" minOccurs="0"
						type="xsd:string" />	
						<!--
							source_logon_mechanism NTLM, (optional)Logon mechanism to use when
							logging on to source system
						-->
						<xsd:element name="source_logon_mechanism" minOccurs="0"
							type="xsd:string" />
						<!--
							source_logon_mechanism_data joe@domain1 @@mypassword
							(optional)Additional parameters needed for the logon mechanism
							being used
						-->
						<xsd:element name="source_logon_mechanism_data"
							minOccurs="0" type="xsd:string" />
						<xsd:element name="source_account_id" minOccurs="0"
							type="xsd:string" />

						<!-- source_session_charset Source Teradata session character set -->
						<xsd:element name="source_session_charset" minOccurs="0"
							type="xsd:string" />

						<!-- source Aster system if any -->
						<xsd:element name="source_aster_system" minOccurs="0"
							maxOccurs="1" type="asterSystemType" />
										
						<!-- target_dbs Checks, Source Teradata database -->
						<xsd:element name="target_tdpid" minOccurs="0" type="xsd:string" />
	
						<!-- target_user TD_API_user, Source Teradata log on id -->
						<xsd:element name="target_user" minOccurs="0" type="xsd:string" />
						<!--
							source_password 123456789, (optional)Source Teradata log on
							password
						-->
						<xsd:element name="target_password" minOccurs="0"
							type="xsd:string" />
						<!--
							source_password_encrypted y1rX3DXZNz (optional)Encrypted source
							Teradata log on password
						-->
						<xsd:element name="target_password_encrypted"
							minOccurs="0" type="xsd:string" />
						<xsd:element name="target_userid_pool" minOccurs="0"
						type="xsd:string" />	
						<!--
							source_logon_mechanism NTLM, (optional)Logon mechanism to use when
							logging on to source system
						-->
						<xsd:element name="target_logon_mechanism" minOccurs="0"
							type="xsd:string" />
						<!--
							source_logon_mechanism_data joe@domain1 @@mypassword
							(optional)Additional parameters needed for the logon mechanism
							being used
						-->
						<xsd:element name="target_logon_mechanism_data"
							minOccurs="0" type="xsd:string" />
						<xsd:element name="target_account_id" minOccurs="0"
							type="xsd:string" />
							
						<!-- target_session_charset Source Teradata session character set -->
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string" />	
							
							<!--
							use_userpool true, (optional)weather to use the
							pool of target user Ids
						-->
						<xsd:element name="use_userid_pool" minOccurs="0"
							type="booleanType" />
					    <xsd:element name="group_userid_pool" minOccurs="0"
						    type="xsd:string" />

						<!--  target Aster system if any -->
					    <xsd:element name="target_aster_system" minOccurs="0"
					     maxOccurs="1" type="asterSystemType" />
					
					    				
						<xsd:element name="data_streams" minOccurs="0" type="xsd:string"/>
						<xsd:element name="source_sessions" minOccurs="0" type="xsd:string"/>
						<xsd:element name="target_sessions" minOccurs="0" type="xsd:string"/>
						<xsd:element name="max_agents_per_task" minOccurs="0" type="xsd:string"/>
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
						<!--
							sync this option is only used by the command line interface
							when set to true, command line will wait for the job to complete
							before exiting
						-->
						<xsd:element name="sync" type="xsd:boolean"
							maxOccurs="1" minOccurs="0" />
						<xsd:element name="overwrite_existing_objects"
							minOccurs="0" type="triStateType" default="unspecified"/>
						
						<xsd:element name="freeze_job_steps" 
							minOccurs="0" type="triStateType" default="unspecified" />
							
						<!--
							force_utility (optional) force Data Mover to use the specified
							utility (dsa, tpt, arc, tptapi, tptapi_load, tptapi_update, tptapi_stream, jdbc)
						-->
						<xsd:element name="force_utility" minOccurs="0"
							type="force_utility" />

			            <xsd:element name="source_staging_database" type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
						<!-- target_staging_database new tag used to replace staging_database -->
						<xsd:element name="target_staging_database" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />
													
						<xsd:element name="staging_database" type="targetDatabaseType"  
							minOccurs="0" maxOccurs="1" />								 			
						<xsd:element name="staging_database_for_table" type="targetDatabaseType"  
							minOccurs="0" maxOccurs="1" />
	           			<xsd:element name="target_database" type="targetDatabaseType" 
	           			 	maxOccurs="1" minOccurs="0" />
						<xsd:element name="use_foreign_server" type="useForeignServerType" 
           			 	maxOccurs="1" minOccurs="0" />
           			 	
						<xsd:element name="compare_ddl" minOccurs="0" maxOccurs="1"
							type="triStateType" default="unspecified"/>
				
						<xsd:element name="log_level" minOccurs="0" type="xsd:int"/>
	
						<!--  online archive -->
						<xsd:element name="online_archive" minOccurs="0" 
							type="triStateType" default="unspecified" />
						
						<xsd:element name="log_to_event_table" minOccurs="0"
							maxOccurs="unbounded" type="xsd:string" />
													<xsd:element name="map" minOccurs="0" maxOccurs="1"  type="xsd:string" />
            			<xsd:element name="colocate" minOccurs="0" maxOccurs="1"  type="xsd:string" />
						<xsd:element name="enable_incremental_restore" minOccurs="0" type="triStateType" default="unspecified"/>
						<xsd:element name="dsa_options" minOccurs="0" 
                        type="dsaOptionsType" />

						<!-- Aster Job level parameters. --> 
						<xsd:element name="aster_options" minOccurs="0" 
						type="asterOptionType" />

						<!-- Cloud Staging Area -->
						<xsd:element name="cloud_staging_area" minOccurs="0" type="cloudStagingArea" />

						<xsd:element name="db_client_encryption" minOccurs="0" type="triStateType" default="unspecified"/>
						<xsd:element name="copy_stats" minOccurs="0" maxOccurs="1" type="triStateType" default="unspecified"/>
						<!-- Databases to be changed -->
						<xsd:element name="database" minOccurs="0"
							maxOccurs="unbounded" type="databaseType" />
	
						<!--  Triggers to be changed -->
						<xsd:element ref="triggers" minOccurs="0" />
	
						<!--  Indices to be changed -->
						<xsd:element ref="indices" minOccurs="0" />
						
						<!--  Views to be changed -->
						<xsd:element ref="views" minOccurs="0" />
						
						<!--  Foreign Servers to be changed -->
						<xsd:element ref="foreign_servers" minOccurs="0" />
						 
						<!--  Function Aliases to be moved -->
						<xsd:element ref="function_aliases" minOccurs="0" />
						
						<!--  Journals to be changed -->
						<xsd:element ref="journals" minOccurs="0" />
			            
			            <!--  Macros to be changed -->
						<xsd:element ref="macros" minOccurs="0" />
						
						<!--  Schemas to be changed -->
						<xsd:element ref="schemas" minOccurs="0" />
						
						<!--  Procedures to be changed -->
						<xsd:element ref="stored_procedures" minOccurs="0" />

                        <!--  Functions to be changed -->
                        <xsd:element ref="functions" minOccurs="0" />

			            <!--  optional unit of work id -->
						<xsd:element name="uowid" minOccurs="0" type="xsd:string" />
						
						 <!--  optional query band parameter -->
						<xsd:element name="query_band" minOccurs="0" type="xsd:string" />
						
	                    <!--  optional enable CLI or TPT trace logging  -->
	                    <xsd:element name="enable_trace_log" type="traceLogType" minOccurs="0" maxOccurs="1"/>

						<xsd:element name="additional_arc_parameters" minOccurs="0" type="xsd:string" />
						<!-- for internal use only	-->
						<xsd:element name="restart" minOccurs="0"
							type="xsd:boolean" default="false" />
						<xsd:element name="move" type="xsd:boolean"
							maxOccurs="1" minOccurs="0">
						</xsd:element>
						<xsd:element name="variableChanged" type="jobVariablesChangeType"
							minOccurs="0"  maxOccurs="1" />							
						<xsd:element name="saveChanges" type="xsd:boolean"
							minOccurs="0"  maxOccurs="1" />							
					</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>					

	<!-- dmBackup -->
	<xsd:element name="dmBackupDaemon">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="backup_target_dir" minOccurs="0" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmBackupOutput -->
	<xsd:element name="dmBackupDaemonOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="backup_daemon_status" nillable="false" type="xsd:string" />
						<xsd:element name="backup_daemon_result" nillable="false" type="xsd:boolean" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmRestore -->
	<xsd:element name="dmRestoreDaemon">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="backup_target_dir" nillable="false" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmRestoreOutput -->
	<xsd:element name="dmRestoreDaemonOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="restore_daemon_status" nillable="false" type="xsd:string" />
						<xsd:element name="restore_daemon_result" nillable="false" type="xsd:boolean" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmCreate -->
	<xsd:element name="dmCreate">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="jobDefinitionType">	
					<xsd:sequence>	
						<!-- permission setting for the created job -->
						<xsd:element name="job_security" minOccurs="0" type="securityType" />	
						<xsd:element name="command_start_time" minOccurs="0" type="xsd:dateTime" />
					</xsd:sequence>				
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmCreateOutput -->
	<xsd:element name="dmCreateOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmStop -->
	<xsd:element name="dmStop">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmStopOutput -->
	<xsd:element name="dmStopOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<xsd:element name="job_definition_id" type="xsd:long" />
						<!-- status of job -->
						<xsd:element name="stopStatus" type="stopJobStatusType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmStart -->
	<xsd:element name="dmStart">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="changedJobDefinitionType">
					<xsd:sequence>
						<xsd:element name="job_security" minOccurs="0" type="securityType" />	
						<xsd:element name="command_start_time" minOccurs="0" type="xsd:dateTime" />
					</xsd:sequence>					
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmStartOutput -->
	<xsd:element name="dmStartOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
				<!-- job_name, null if pending in queue -->
						<xsd:element name="job_name" minOccurs="0" type="xsd:string" />

				<!-- jobExecution, null if pending in queue -->
						<xsd:element name="job_execution_ID" minOccurs="0"
							type="xsd:long" />
				<!-- status of job -->
						<xsd:element name="startStatus" type="startJobStatusType" />
						
				<!-- Any message to Print in addition to standard message -->
						<xsd:element name="messageCode" minOccurs="0" type="xsd:string" />
						
				<!--  Any objects names to send to command line -->
				<xsd:element name="objectList" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
						
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- Valid Selection values for objects -->
	<xsd:simpleType name="jobVariablesChangeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="UNCHANGED" />
			<xsd:enumeration value="PARTIAL" />			
			<xsd:enumeration value="FULL" />			
		</xsd:restriction>
	</xsd:simpleType>	
	
	<!-- dmSync -->
	<xsd:element name="dmSync">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false"
							type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmSyncOutput -->
	<xsd:element name="dmSyncOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
				<!-- job_name, null if pending in queue -->
						<xsd:element name="job_name" minOccurs="0" type="xsd:string" />

				<!-- jobExecution, null if pending in queue -->
						<xsd:element name="job_execution_ID" minOccurs="0"
							type="xsd:long" />
				<!-- status of job -->
						<xsd:element name="status" type="statusType" />
				<!-- row count validation errors -->
						<xsd:element name="rowCountErrors" type="xsd:string"
							maxOccurs="unbounded" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmCleanup -->
	<xsd:element name="dmCleanup">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmCleanupOutput -->
	<xsd:element name="dmCleanupOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<!-- status of cleanup job -->
						<xsd:element name="message" type="xsd:string" />
						<xsd:element name="result" type="xsd:string"
							maxOccurs="unbounded" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
		
		<!-- dmUpdateJobSteps -->
	<xsd:element name="dmUpdateJobSteps">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmUpdateJobStepsOutput -->
	<xsd:element name="dmUpdateJobStepsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<!-- status of cleanup job -->
						<xsd:element name="result" type="xsd:string"
							maxOccurs="unbounded" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmStatus -->
	<xsd:element name="dmStatus">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
					    <xsd:choice>
					    <!-- Either job_name or job_id -->
					    <!-- job_name, JOB1, Job Name of the job to get status  -->
      						<xsd:element name="job_name" type="xsd:string"/>
      					<!-- job_id, 1321245456, Job ID of the job to get status  -->
      						<xsd:element name="job_id" type="xsd:long"/>
    					</xsd:choice>
						<!--
							frequency, 10, Frequency of polling in seconds, negative
							indicates do no poll again
						-->
						<xsd:element name="frequency" minOccurs="0" type="xsd:int" />
						<!--
							Job status granularity level 1: Basic job status, 2: Job steps
							status, 3: Detailed job step status
						-->
						<xsd:element name="output_level" minOccurs="0" type="xsd:int"
							default="1" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- output from dmStatus -->
	<xsd:element name="dmStatusOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />

				<!-- jobExecution to be copied -->
						<xsd:element name="job_execution" nillable="false"
							type="jobExecutionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmViewLog -->
	<xsd:element name="dmViewLog">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<!--
							dir /user/tptapi/lists, (optional)Output directory for log file.
						-->
						<xsd:element name="dir" minOccurs="0" type="xsd:string" />
						<!--
							filename: log.txt, (optional)Output file name for the log file.
							Will be overwritten if already exist
						-->
						<xsd:element name="filename" minOccurs="0" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- Valid status values:
	     A (ALL) N (NEW) I (INITIALIZING), R (RUNNING), C (COMPLETED_SUCCESSFULLY), F (FAILED), 
	     RS(RESTARTING), Q (QUEUED), UC (USER_CANCELLED)
    -->
    <xsd:simpleType name="statusModeType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="A|a|N|n|I|i|R|r|B|b|C|c|F|f|[Rr][Ss]|Q|q|[Uu][Cc]"/>
		</xsd:restriction>
	</xsd:simpleType>

	<!-- DmListJobs -->
	<xsd:element name="dmListJobs">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="status_mode" minOccurs="0" type="statusModeType" default="A"/>
						<xsd:element name="job_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="job_execution_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="start_time" minOccurs="0" type="xsd:string" />
						<xsd:element name="end_time" minOccurs="0" type="xsd:string" />
						<xsd:element name="end_time_after" minOccurs="0" type="xsd:string" />
						<xsd:element name="last_hour" minOccurs="0" type="xsd:int" default="0" />
						<xsd:element name="freeze_step_only" minOccurs="0" type="xsd:boolean" default="false" />
						<xsd:element name="latest_job_only" minOccurs="0" type="xsd:boolean" default="true" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- DmListJobsOutput -->
	<xsd:element name="dmListJobsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="listJobsRecord" type="listJobsRecordType"
							maxOccurs="unbounded" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- Valid status values: A (ALL), R (RUNNING), Q (QUEUED) -->
	<xsd:simpleType name="taskStatusModeType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="A|a|R|r|Q|q" />
		</xsd:restriction>
	</xsd:simpleType>

	<!-- listTasksRecordType -->
	<xsd:complexType name="listTasksRecordType">
		<xsd:sequence>
			<xsd:element name="task_id" type="xsd:long" />
			<xsd:element name="job_name" minOccurs="0" type="xsd:string" />
			<xsd:element name="task_status" type="xsd:string" />
			<xsd:element name="agent_names" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
			<xsd:element name="queue_name" minOccurs="0" type="xsd:string" />
			<xsd:element name="queue_order" type="xsd:int" nillable="true"/>
			<xsd:element name="utility" type="xsd:string" />
			<xsd:element name="src_system" minOccurs="0" type="xsd:string" />
			<xsd:element name="target_system" minOccurs="0" type="xsd:string" />
			<xsd:element name="target_user_pool_name" minOccurs="0" type="xsd:string" />
			<xsd:element name="job_priority" type="xsd:string" />
			<xsd:element name="last_update_time" type="xsd:long" />
		</xsd:sequence>
	</xsd:complexType>
    
	<!-- DmListTasks -->
	<xsd:element name="dmListTasks">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="task_status_mode" minOccurs="0"
							type="taskStatusModeType" default="A" />
						<xsd:element name="job_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="task_id" minOccurs="0"
							type="xsd:long" />
						<xsd:element name="agent_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="frequency" minOccurs="0" type="xsd:int" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- DmListTasksOutput -->
	<xsd:element name="dmListTasksOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="listTasksRecordTypeList" type="listTasksRecordType"
							maxOccurs="unbounded" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmTaskListUpdateAnnouncement">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmMessageBase">
					<xsd:sequence>
						<xsd:element name="timestamp" type="xsd:long" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
    <!-- Get Datamover API Info -->
	<xsd:element name="dmGetAPIInfo">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
    <!--  Datamover API INFO -->
	<xsd:element name="dmAPIInfoOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="version" nillable="false" type="xsd:string" />
						<xsd:element name="time" nillable="false" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
		
    <!-- DSA target groups -->
	<xsd:element name="dmDSATargetGroups">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

    <!-- DSA target groups output -->
	<xsd:element name="dmDSATargetGroupsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="targetGroups" minOccurs="0" maxOccurs="unbounded"
							type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

    <xsd:complexType name="jobStatusNotificationType">
        <xsd:sequence>
            <xsd:element name="jobName" minOccurs="1" type="xsd:string" />
        </xsd:sequence>
    </xsd:complexType>

	<!-- news push type -->
	<xsd:complexType name="newsPushType">
        <xsd:complexContent>
            <xsd:extension base="jobStatusNotificationType">
                <xsd:sequence>
                    <xsd:element name="channel" minOccurs="1" type="xsd:string" />
                    <xsd:element name="timestamp" minOccurs="1" type="xsd:long" />
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
	</xsd:complexType>

	<!-- DmNewPush -->
	<xsd:element name="dmNewsPush">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="newsPush" minOccurs="1" type="newsPushType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- DMNewsPush output -->
    <xsd:element name="dmNewsPushOutput">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="dmOutputBase"/>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

    <!-- dsaJobStatus element of Cloud staging news push type -->
    <xsd:complexType name="cs2DsaJobStatusType">
        <xsd:sequence>
            <xsd:element name="job_name" minOccurs="1" type="xsd:string" />
            <xsd:element name="job_type" minOccurs="1" type="xsd:string" />
            <xsd:element name="job_status" minOccurs="1" type="xsd:string" />
            <xsd:element name="percent_complete" minOccurs="1" type="xsd:int" />
            <xsd:element name="elapsed_time" minOccurs="1" type="xsd:string" />
        </xsd:sequence>
    </xsd:complexType>

	<!-- Cloud Staging news push type -->
	<xsd:complexType name="cloudStagingNewsPushType">
        <xsd:complexContent>
            <xsd:extension base="jobStatusNotificationType">
                <xsd:sequence>
                    <xsd:element name="channel" minOccurs="1" type="xsd:string" />
                    <xsd:element name="job_status" minOccurs="0" type="xsd:string" />
                    <xsd:element name="timestamp" minOccurs="0" type="xsd:long" />
                    <xsd:element name="elapsed_time" minOccurs="0" type="xsd:string" />
                    <xsd:element name="dsa_job_status" minOccurs="0" type="cs2DsaJobStatusType" />
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
	</xsd:complexType>

	<!-- dmCsNewsPush -->
	<xsd:element name="dmCs2NewsPush">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="newsPush" minOccurs="1" type="cloudStagingNewsPushType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmDeleteJob -->
	<xsd:element name="dmDeleteJob">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job ID of the job to be started  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
				<!-- Delete all of job definition and job history of this job -->
						<xsd:element name="all" minOccurs="0" type="booleanType" />
				<!-- Only one is allowed depending if using Command Line or JMS directly -->						
						<xsd:choice>
					<!-- Not used when using Command Line. Preview the list of job that will be deleted -->
							<xsd:element name="preview" minOccurs="0" type="xsd:boolean" />
					<!-- Only used by Command Line. Skip preview and confirmation and delete directly -->
							<xsd:element name="skip_prompt" minOccurs="0" type="booleanType" />
						</xsd:choice>
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmDeleteJobOutput -->
	<xsd:element name="dmDeleteJobOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job" minOccurs="0" 
						    maxOccurs="unbounded" type="simpleJobType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
		
	<!-- DMGetJobDefinition -->
	<xsd:element name="dmGetJobDefinition">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				<!-- job_name, 12315DFHJKS, Job Name of the job definition  -->
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<!--
							dir /user/tptapi/lists, (optional)Output directory for object
							list.
						-->
						<xsd:element name="dir" minOccurs="0" type="xsd:string" />
						<!--
							filename jobdefinition.xml, (optional)Output file name for the
							job definition file. Will be overwritten if already exist
						-->
						<xsd:element name="filename" minOccurs="0" type="xsd:string" />
						<xsd:element name="public_key" minOccurs="0" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmGetJobDefinitionOutput -->
	<xsd:element name="dmGetJobDefinitionOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_definition" type="jobDefinitionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmListJobStep: Get job steps -->
	<xsd:element name="dmListJobSteps">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="job_name" nillable="false" type="xsd:string" />
						<xsd:element name="dir" minOccurs="0" type="xsd:string" />
						<xsd:element name="filename" minOccurs="0" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmLisJobStepsOutput -->
	<xsd:element name="dmListJobStepsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_name" type="xsd:string" />
						<xsd:element name="source_tdpid" minOccurs="0" type="xsd:string" />
					    <xsd:element name="source_user" minOccurs="0" type="xsd:string" />
					    <xsd:element name="source_aster_login" minOccurs="0" type="asterSystemType"/>
					    <xsd:element name="target_tdpid" minOccurs="0" type="xsd:string" />
					    <xsd:element name="target_user" minOccurs="0" type="xsd:string" />
					    <xsd:element name="target_aster_login" minOccurs="0" type="asterSystemType"/>
					    <xsd:element name="step" minOccurs="0" maxOccurs="unbounded" type="stepListType" />
						<xsd:element name="source_sessions" minOccurs="0" type="sessionsAndStreamsType" />
						<xsd:element name="target_sessions" minOccurs="0" type="sessionsAndStreamsType" />
						<xsd:element name="data_streams"  minOccurs="0" type="sessionsAndStreamsType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- Get Daemon Public Key -->
	<xsd:element name="dmCryptoPublicKey">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="response_timeout" minOccurs="0"
						type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmCryptoPublicKeyOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="public_key" type="xsd:string"
							minOccurs="1" maxOccurs="1" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- Request Encrypted Password Command -->
	<xsd:element name="dmGetEncryptedPassword">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="password" 
						nillable="false" type="xsd:string" />
						<!--
							dir /user/tptapi/lists, (optional)Output directory for object
							list.
						-->
						<xsd:element name="dir" minOccurs="0" type="xsd:string" />
						<!--
							object_list objectlist.xml, (optional)Output file name for the
							object list
						-->
						<xsd:element name="filename" minOccurs="0" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
						type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmGetEncryptedPasswordOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="password_encrypted" type="xsd:string"
							minOccurs="1" maxOccurs="1" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<!-- stepListType -->
	<xsd:complexType name="stepListType">
		<xsd:sequence>
		    <xsd:element name="data_streams" minOccurs="0" maxOccurs="1" type="xsd:int"/>
		    <xsd:element name="dsa_task" minOccurs="0" maxOccurs="unbounded" type="DSATaskType" />
			<xsd:element name="arc_task" minOccurs="0" maxOccurs="unbounded" type="ARCTaskType" />
			<xsd:element name="jdbc_task" minOccurs="0" maxOccurs="unbounded" type="JDBCTaskType" />
			<xsd:element name="sql_task" minOccurs="0" maxOccurs="unbounded" type="SQLTaskType" />
			<xsd:element name="aster_mr_task" minOccurs="0" maxOccurs="unbounded" type="AsterMRTaskType" />
			<xsd:element name="tptapi_task" minOccurs="0" maxOccurs="unbounded" type="TPTAPITaskType" />
		    <xsd:element name="t2t_task" minOccurs="0" maxOccurs="unbounded" type="T2TTaskType" />
            <xsd:element name="cs2_task" minOccurs="0" maxOccurs="unbounded" type="CS2TaskType" />
			<xsd:element name="rowcountvalidation_task" minOccurs="0" maxOccurs="unbounded" type="RowCountValidationTaskType" />
		</xsd:sequence>
		<xsd:attribute name="type" type="xsd:string" use="required" />
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>

    <xsd:complexType name="DSATaskType">
        <xsd:sequence>
            <xsd:element name="dsa_job_name" type="xsd:string" minOccurs="0" maxOccurs="1" />
            <xsd:element name="job_model_json" type="xsd:string" minOccurs="0" maxOccurs="1"/>
	    <xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:long" use="required" />
    </xsd:complexType>

    <xsd:complexType name="CS2TaskType">
        <xsd:sequence>
            <xsd:element name="cs2_job_name" type="xsd:string" minOccurs="0" maxOccurs="1" />
            <xsd:element name="job_model_json" type="xsd:string" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:long" use="required" />
    </xsd:complexType>

	<xsd:complexType name="ARCTaskType">
		<xsd:sequence>
			<xsd:element name="source_unlock_script" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="target_unlock_script" type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="archive_script" type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="copy_script" type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="build_script" type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="source_sessions_count" type="xsd:int" default="1"/>
			<xsd:element name="target_sessions_count" type="xsd:int" default="1"/>
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>

	<xsd:complexType name="SQLTaskType">
		<xsd:sequence>
			<xsd:element name="object_move_phrase" type="xsd:string" minOccurs="0" />
			<xsd:element name="source" type="objectInfoType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="target" type="objectInfoType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>
	
	<xsd:complexType name="AsterMRTaskType">
		<xsd:sequence>
			<xsd:element name="object_type" type="xsd:string" />
			<xsd:element name="object_move_phrase" type="xsd:string" minOccurs="0" />
			<xsd:element name="movement_type" type="xsd:string" minOccurs="0" />
			<xsd:element name="source" type="asterObjectInfoType" />
			<xsd:element name="target" type="asterObjectInfoType" />
			<xsd:element name="aster_sql_mr_statement" type="xsd:string" minOccurs="0" />
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
			<!--  
			<xsd:element name="aster_progress_query" type="xsd:string" minOccurs="0" />
			<xsd:element name="teradata_progress_query" type="xsd:string" minOccurs="0" />
			-->
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>

	<xsd:complexType name="TPTAPITaskType">
		<xsd:sequence>
			<xsd:element name="object_type" type="xsd:string" />
			<xsd:element name="source_sessions_count" type="xsd:int" default="1" />
			<xsd:element name="target_sessions_count" type="xsd:int" default="1" />
			<xsd:element name="source" type="objectInfoType" />
			<xsd:element name="target" type="objectInfoType" />
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>

	<xsd:complexType name="T2TTaskType">
		<xsd:sequence>
			<xsd:element name="object_type" type="xsd:string" />
			<xsd:element name="source" type="objectInfoType" />
            <xsd:element name="target" type="objectInfoType" />
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>
		
	<xsd:complexType name="JDBCTaskType">
		<xsd:sequence>
			<xsd:element name="object_type" type="xsd:string" />
			<xsd:element name="source" type="objectInfoType" />
			<xsd:element name="target" type="objectInfoType" />
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>

	<xsd:complexType name="RowCountValidationTaskType">
		<xsd:sequence>
			<xsd:element name="object_type" type="xsd:string" />
			<xsd:element name="source" type="objectInfoType" />
			<xsd:element name="target" type="objectInfoType" />
			<xsd:element name="data_streams" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:long" use="required" />
	</xsd:complexType>

	<xsd:complexType name="objectInfoType">
		<xsd:sequence>
			<xsd:element name="parent" type="xsd:string" minOccurs="0" />
			<xsd:element name="table" type="xsd:string" minOccurs="0" />
			<xsd:element name="operator_type" type="xsd:string"	minOccurs="0" />
			<xsd:element name="sql_statement_list">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="sql_statement" type="xsd:string"
							minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<!--
				<xsd:element name="sql_statement_list" type="sqlStatementType"
				minOccurs="0" /> <xsd:element name="sql_statement_list"
				type="sqlStatementType" minOccurs="0" maxOccurs="unbounded" />
			-->
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="PostLoadSQLType">
		<xsd:sequence>
			<xsd:element name="sql" type="xsd:string" minOccurs="0" />
			<xsd:element name="startTime" type="xsd:dateTime" minOccurs="0"/>
			<xsd:element name="stopTime" type="xsd:dateTime" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="asterObjectInfoType">
		<xsd:sequence>
			<xsd:element name="parent" type="xsd:string" minOccurs="0" />
			<xsd:element name="schema" type="xsd:string" minOccurs="0" />
			<xsd:element name="table" type="xsd:string" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="eventTableType">
		<xsd:sequence>
			<xsd:element name="event_table_name" nillable="false"	type="xsd:string" />
			<xsd:element name="system" nillable="false"	type="xsd:string" />
			<xsd:element name="database" nillable="false" type="xsd:string" />
			<xsd:element name="user_name" nillable="false"	type="xsd:string" />
			<xsd:element name="user_password" nillable="false" type="xsd:string" />
			<xsd:element name="event_table_id" nillable="false" type="xsd:long" />
		</xsd:sequence>
	</xsd:complexType>

	<!-- dmEventTableBase -->
	<xsd:complexType name="dmEventTableBase">
		<xsd:complexContent>
			<xsd:extension base="dmCommandBase">
				<xsd:sequence>
					<!--
						name for this installation of
						event table.
					-->
					<xsd:element name="event_table_name" nillable="false"
						type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!-- dmCreateTMSMEventTable -->
	<xsd:element name="dmCreateEventTable">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmEventTableBase">
					<xsd:sequence>
						<!--
							system - Teradata System where TMSMEvent Table Resides
						-->
						<xsd:element name="system" nillable="false"
							type="xsd:string" />
						<!--
							user_name - Teradata user name used to access TMSMEvent Table
						-->
						<xsd:element name="user_name" nillable="false"
							type="xsd:string" />
						<!--
							user_password (optional)
						-->
						<xsd:element name="user_password" minOccurs="0"
							type="xsd:string" />

						<!-- internal use only -->
						<xsd:element name="user_password_encrypted"
							minOccurs="0" type="xsd:base64Binary" />
						<!--
							Parent Database for TMSMEvent Table
						-->
						<xsd:element name="event_database" nillable="false"
							type="xsd:string" />

						<!-- 
							Using existing TMSM Event Table (optional) 
						-->
						<xsd:element name="use_existing_event_table"
							minOccurs="0" type="booleanType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmCreateEventTableOutput -->
	<xsd:element name="dmCreateEventTableOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<!-- name of the tmsm event table created  -->
						<xsd:element name="event_table_name" nillable="false"
							type="xsd:string" />
						<xsd:element name="create_result" type="xsd:string"
							maxOccurs="unbounded" minOccurs="0"></xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmDeleteEventTable -->
	<xsd:element name="dmDeleteEventTable">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmEventTableBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmDeleteEventTableOutput -->
	<xsd:element name="dmDeleteEventTableOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="event_table_name" nillable="false"
							type="xsd:string" />
						<xsd:element name="result" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmModifyEventTable -->
	<xsd:element name="dmModifyEventTable">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmEventTableBase">
					<xsd:sequence>
						<!-- Change user_name -->
						<xsd:element name="change_user_name" minOccurs="0"
							type="booleanType" default="false"/>
						<!-- New user name -->
						<xsd:element name="user_name" minOccurs="0" type="xsd:string" />
						<!-- Change user_password -->
						<xsd:element name="change_user_password" minOccurs="0"
							type="booleanType" default="false"/>
						<!-- New password for user -->
						<xsd:element name="user_password" minOccurs="0" type="xsd:string" />
						<!-- internal use only -->
						<xsd:element name="user_password_encrypted" minOccurs="0"
							type="xsd:base64Binary" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmEventTableOutput -->
	<xsd:element name="dmEventTableOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="event_table_name" nillable="false"
							type="xsd:string" />
						<xsd:element name="result" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmListEventTable -->
	<xsd:element name="dmListEventTable">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>	

	<xsd:element name="dmListEventTableOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="result" type="eventTableType"  minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmListConfiguration -->
	<xsd:element name="dmListConfiguration">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<!--
							dir /user/tptapi/lists, (optional)Output directory for object
							list.
						-->
						<xsd:element name="dir" minOccurs="0" type="xsd:string" />
						<!--
							filename jobdefinition.xml, (optional)Output file name for the
							job definition file. Will be overwritten if already exist
						-->
						<xsd:element name="filename" minOccurs="0" type="xsd:string" />
						<xsd:element name="response_timeout" minOccurs="0"
							type="xsd:int" default="10" />
						<xsd:element name="public_key" minOccurs="0" type="xsd:string" />	
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- Output for dmListConfiguration -->
	<xsd:element name="configurationOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="property" nillable="false" maxOccurs="unbounded" type="propertyType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmSaveConfiguration -->
	<xsd:element name="dmSaveConfiguration">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="property" nillable="false" maxOccurs="unbounded" type="propertyType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- Output for dmSaveConfiguration -->
	<xsd:element name="saveConfigurationOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="updated_property" nillable="false" minOccurs="0" maxOccurs="unbounded" type="propertyType" />
						<xsd:element name="targetUserProperty" nillable="true"  type="propertyType" />
						<xsd:element name="groupUserProperty" nillable="true" type="propertyType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmListAgents -->
	<xsd:element name="dmListAgents">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="agent_names" minOccurs="0" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- Output for dmAgentListOutput -->
	<xsd:element name="dmAgentListOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="agent_info" minOccurs="0" maxOccurs="unbounded" type="agentInfoType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
			
	<!-- DMPingDaemon -->
	<xsd:element name="dmPingDaemon">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
				
				<!-- job_name, 12315DFHJKS, Job Name of the job definition  -->
						<xsd:element name="correlation_id" nillable="false"
							type="xsd:long" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!--  getGlobalAccessPermissions -->
	<xsd:element name="getGlobalAccessPermissions">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="getGlobalAccessPermissionsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="permission" minOccurs="0" maxOccurs="unbounded" type="accessPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
    <!--  updateGlobalAccessPermissions -->
	<xsd:element name="updateGlobalAccessPermissions">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="permission" minOccurs="0" maxOccurs="unbounded" type="accessPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="updateGlobalAccessPermissionsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="status" maxOccurs="1" type="xsd:int" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- AccessPermissionType -->
	<xsd:complexType name="accessPermissionType">
		<xsd:sequence>
			<xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="object_type" minOccurs="1" maxOccurs="1" type="permissionObjectType" />
			<xsd:element name="allowRead" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowWrite" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowExecute" minOccurs="0" maxOccurs="1" type="booleanType" />
		</xsd:sequence>
	</xsd:complexType>

	<!-- ModificationPermissionType -->
	<xsd:complexType name="modificationPermissionType">
		<xsd:sequence>
			<xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="object_type" minOccurs="1" maxOccurs="1" type="permissionObjectType" />
			<xsd:element name="allowUpdateJobPlan" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowChangeJobPriority" minOccurs="0" maxOccurs="1" type="booleanType" />			
			<xsd:element name="maxNumberOfStreams" minOccurs="0" maxOccurs="1" type="xsd:int" />
			<xsd:element name="allowDSA" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowT2T" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowARC" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowTPTAPILOAD" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowTPTAPIUPDATE" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowTPTAPISTREAM" minOccurs="0" maxOccurs="1" type="booleanType" />
		</xsd:sequence>
	</xsd:complexType>


		
	<!-- PermissionObjectType -->
	<xsd:simpleType name="permissionObjectType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Uu][Ss][Ee][Rr]|[Rr][Oo][Ll][Ee]"/>
		</xsd:restriction>
	</xsd:simpleType>

	<!-- JobContextPermission -->
	<xsd:complexType name="jobContextPermission">
		<xsd:sequence>
			<xsd:element name="allowRead" minOccurs="1" maxOccurs="1" type="xsd:boolean" default="false" />
			<xsd:element name="allowExecute" minOccurs="1" maxOccurs="1" type="xsd:boolean" default="false" />
			<xsd:element name="allowWrite" minOccurs="1" maxOccurs="1" type="xsd:boolean" default="false" />
			<xsd:element name="isOwner" minOccurs="1" maxOccurs="1" type="xsd:boolean" default="false" />
			<xsd:element name="allowUpdateJobPlan" minOccurs="1" maxOccurs="1" type="xsd:boolean" default="true"/>
			<xsd:element name="allowChangeJobPriority" minOccurs="1" maxOccurs="1" type="xsd:boolean" default="true"/>			
			<xsd:element name="isJobFrozen" minOccurs="1" maxOccurs="1" type="triStateType" default="unspecified" />
		</xsd:sequence>
	</xsd:complexType>

	<!--  getGlobalModificationPermissions -->
	<xsd:element name="getGlobalModificationPermissions">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="getGlobalModificationPermissionsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="permission" minOccurs="0" maxOccurs="unbounded" type="modificationPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
    <!--  updateGlobalModificationPermissions -->
	<xsd:element name="updateGlobalModificationPermissions">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="permission" minOccurs="0" maxOccurs="unbounded" type="modificationPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="updateGlobalModificationPermissionsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="status" maxOccurs="1" type="xsd:int" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="getUserPermissionOnJob">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="job_name" minOccurs="1" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="jobAccessPermissionType">
		<xsd:sequence>
			<xsd:element name="isOwner" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowRead" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowWrite" minOccurs="0" maxOccurs="1" type="booleanType" />
			<xsd:element name="allowExecute" minOccurs="0" maxOccurs="1" type="booleanType" />
		</xsd:sequence>
	</xsd:complexType>
	
	
	<xsd:element name="getUserPermissionOnJobOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_access_permission" minOccurs="1" maxOccurs="1" type="jobAccessPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="getJobPermissions">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="job_name" minOccurs="1" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="getJobPermissionsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_security" minOccurs="0" maxOccurs="1" type="securityType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="getJobContextMenuPermission">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="job_name" minOccurs="1" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="getJobContextMenuPermissionOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="contextPermission" minOccurs="1" maxOccurs="1" type="jobContextPermission" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="getGlobalAccessPermissionByUserAndRoles">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="getGlobalAccessPermissionByUserAndRolesOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="globalAccessPermission" minOccurs="1" maxOccurs="1" type="accessPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>	

	<xsd:element name="getGlobalModificationPermissionByUserAndRoles">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="getGlobalModificationPermissionByUserAndRolesOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="globalModificationPermission" minOccurs="1" maxOccurs="1" type="modificationPermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>	
			
	<xsd:simpleType name="permissionType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="read" />
			<xsd:enumeration value="execute" />
			<xsd:enumeration value="write" />
			<xsd:enumeration value="owner" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="getJobsWithPermission">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="permission" minOccurs="1" type="permissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="getJobsWithPermissionOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_name" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- Update permission type -->
	<xsd:complexType name="updatePermissionType">
		<xsd:sequence>
			<xsd:element name="job_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="job_security" minOccurs="1" maxOccurs="1" type="securityType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="updateJobPermissions">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="job_permission" minOccurs="1" maxOccurs="unbounded" type="updatePermissionType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="updateJobPermissionsOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="status" maxOccurs="1" type="xsd:int" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="removeRole">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="role" maxOccurs="1" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="removeUser">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="username" maxOccurs="1" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- Security type, view_permission is the same as read_permission, provided for backward compatiability -->
	<xsd:complexType name="securityType">
		<xsd:sequence>
			<xsd:element name="owner_name" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="read_permission" minOccurs="0" maxOccurs="1" type="userSecurityType" />
			<xsd:element name="write_permission" minOccurs="0" maxOccurs="1" type="userSecurityType" />
			<xsd:element name="execute_permission" minOccurs="0" maxOccurs="1" type="userSecurityType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<!-- User security type -->
	<xsd:complexType name="userSecurityType">
		<xsd:sequence>
			<xsd:element name="username" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
			<xsd:element name="role" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<!-- Define data types   -->
	<!-- propertyType -->
	<xsd:complexType name="propertyType">
		<xsd:sequence>
			<xsd:element name="key" type="xsd:string" />
			<xsd:element name="value" type="valueType" maxOccurs="unbounded" minOccurs="1"/>
			<xsd:element name="systemPairs" type="systemPairType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="groupPools" type="groupPoolsType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="targetUserPool" type="targetUserPoolType" maxOccurs="1" minOccurs="0"/>
        	<xsd:element name="systemList" type="neverTargetListType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="defaultDatabases" type="defaultDatabasesType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="unit" type="xsd:string" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="maps" type="mapsType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="description" minOccurs="0" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>


    <!-- Unite Type -->
	<xsd:simpleType name="tmsmFrequencyBytesUnitType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="BYTES" />
			<xsd:enumeration value="MB" />
			<xsd:enumeration value="GB" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<!-- mapsType -->
    <xsd:complexType name="mapsType">                 
        <xsd:sequence>
            <xsd:element name="systemLevelMap" type="mapType" maxOccurs="unbounded" minOccurs="1"/>   
        </xsd:sequence>   
    </xsd:complexType>
    
    <xsd:complexType name="mapType">                 
        <xsd:sequence>
        	<xsd:element name="system" type="xsd:string" maxOccurs="1" minOccurs="1"/>
            <xsd:element name="map" type="xsd:string" maxOccurs="1" minOccurs="1"/>   
        </xsd:sequence>      
    </xsd:complexType>
    
	
	<!-- defaultDatabasesType -->
    <xsd:complexType name="defaultDatabasesType">
    	<xsd:sequence>
    		<xsd:element name="systemLevelDatabase" type="systemLevelDatabaseType" maxOccurs="unbounded" minOccurs="1"/>	
   		</xsd:sequence>
    </xsd:complexType>
    
    <!-- systemLevelDatabaseType -->
    <xsd:complexType name="systemLevelDatabaseType">
    	<xsd:sequence>
    		<xsd:element name="system" type="xsd:string" maxOccurs="1" minOccurs="1"/>
   			<xsd:element name="source_staging_database" type="xsd:string" maxOccurs="1" minOccurs="0"/>
   			<!-- new tag to repleace staging_database for target staging database -->
   			<xsd:element name="target_staging_database" type="xsd:string" maxOccurs="1" minOccurs="0"/>
   			<xsd:element name="staging_database" type="xsd:string" maxOccurs="1" minOccurs="0"/>
  			<xsd:element name="staging_database_for_table" type="xsd:string" maxOccurs="1" minOccurs="0"/>
   			<xsd:element name="target_database" type="xsd:string" maxOccurs="1" minOccurs="0"/>

   		</xsd:sequence>
    </xsd:complexType>
    
	<!-- neverTargetListType -->
    <xsd:complexType name="neverTargetListType">
    	<xsd:sequence>
    		<xsd:element name="targetSystem" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>	
   		</xsd:sequence>
    </xsd:complexType>
    
	<!-- systemPairType -->
    <xsd:complexType name="systemPairType">
    	<xsd:sequence>
    		<xsd:element name="forceDirectionPair" type="forceDirectionPairType" maxOccurs="unbounded" minOccurs="1"/>	
   		</xsd:sequence>
    </xsd:complexType>

    <!-- userGroupPoolType -->
    <xsd:complexType name="groupPoolsType">
    	<xsd:sequence>
    		<xsd:element name="groupPool" type="userGroupType" maxOccurs="unbounded" minOccurs="1"/>    			
   		</xsd:sequence>
   		
    </xsd:complexType>

    <!-- userGroupType -->
    <xsd:complexType name="userGroupType"> 
               	
    	<xsd:sequence> 
    	    <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1"/>       
    		<xsd:element name="system" type="systemType" maxOccurs="unbounded" minOccurs="1"/>
   		</xsd:sequence>
   		
    </xsd:complexType>
            
    <!-- targetUserPoolType -->
    <xsd:complexType name="targetUserPoolType">
    	<xsd:sequence>
    		<xsd:element name="system" type="systemType" maxOccurs="unbounded" minOccurs="1"/>	
   		</xsd:sequence>
    </xsd:complexType>
    
    	<!-- systemType -->
    <xsd:complexType name="systemType">
    	<xsd:sequence>
    		<xsd:element name="user" type="userType" maxOccurs="unbounded" minOccurs="1"/>	
   		</xsd:sequence>
   		<xsd:attribute name="name" type="xsd:string" use="required"/>
    </xsd:complexType>
    
    <!-- forceDirectionPairType -->
    <xsd:complexType name="forceDirectionPairType">
    	<xsd:sequence>
    		<xsd:element name="sourceSystem" type="xsd:string" maxOccurs="1" minOccurs="1"/>
   			<xsd:element name="targetSystem" type="xsd:string" maxOccurs="1" minOccurs="1"/>
   		</xsd:sequence>
   		<xsd:attribute name="allowStatsBack" type="xsd:boolean" use="required"/>
    </xsd:complexType>
    	
   	 <!-- userType -->
    <xsd:complexType name="userType">
    	<xsd:sequence>
    		<xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1"/>
   			<xsd:element name="password" type="xsd:string" maxOccurs="1" minOccurs="0"/>
   			<xsd:element name="encrypted_password" type="xsd:string" maxOccurs="1" minOccurs="0"/>
   		</xsd:sequence>
    </xsd:complexType>
    <!-- valueType -->
    <xsd:complexType name="valueType">
    	<xsd:simpleContent>
    		<xsd:extension base="simpleValueType">
	   			<xsd:attribute name="system" type="xsd:string"/>
    		</xsd:extension>
  		</xsd:simpleContent>
    </xsd:complexType>
    
    <!-- simpleValueType -->
   	<xsd:simpleType name="simpleValueType">
		<xsd:restriction base="xsd:string">
		</xsd:restriction>
	</xsd:simpleType>

    <!-- startJobStatusType -->
	<xsd:simpleType name="startJobStatusType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="STARTED" />
			<xsd:enumeration value="QUEUED" />
			<xsd:enumeration value="BLOCKED" />
			<xsd:enumeration value="REJECTED" />
			<xsd:enumeration value="USER_CANCELLED" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<!-- stopJobStatusType -->
	<xsd:simpleType name="stopJobStatusType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="dropped_from_queue" />
			<xsd:enumeration value="stop_requested" />
			<xsd:enumeration value="not_running_nor_queued" />
			<xsd:enumeration value="not_running_but_new_instance" />
			<xsd:enumeration value="not_running_stopped_latest" />
			<xsd:enumeration value="blocked_job_stopped" />
		</xsd:restriction>
	</xsd:simpleType>

	<!-- statusType -->
	<xsd:simpleType name="statusType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="INITIALIZING" />
			<xsd:enumeration value="RUNNING" />
			<xsd:enumeration value="BLOCKED" />
			<xsd:enumeration value="COMPLETED_SUCCESSFULLY" />
			<xsd:enumeration value="FAILED" />
			<xsd:enumeration value="RESTARTING" />
			<xsd:enumeration value="QUEUED" />
			<xsd:enumeration value="USER_CANCELLED" />
			<xsd:enumeration value="NEW" />
			<xsd:enumeration value="ARC_SOCKET_FAILURE" />
			<xsd:enumeration value="COMPLETED_WITH_ERRORS" />
			<xsd:enumeration value="COMPLETED_WITH_WARNINGS" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="stepEnumType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="NONE" />
			<xsd:enumeration value="CLEAN_UP" />
			<xsd:enumeration value="BUILD_DATABASE" />
			<xsd:enumeration value="MOVE_DATABASE_DEFINITION" />
			<xsd:enumeration value="MOVE_DEFINITION_BEFORE_LOAD" />
			<xsd:enumeration value="MOVE_DEF_AND_SRC_STG_DATA" />
			<xsd:enumeration value="MOVE_DATABASE_DATA" />
			<xsd:enumeration value="MOVE_TABLE_DATA" />
			<xsd:enumeration value="MOVE_VIEW_DATA" />
			<xsd:enumeration value="MOVE_JOURNAL_DATA" />
			<xsd:enumeration value="RESOLVE_TABLE_AFTER_LOAD" />
			<xsd:enumeration value="COPY_STATISTICS" />
			<xsd:enumeration value="HARD_DELETE" />
			<xsd:enumeration value="COMPARE_DDL"/>
			<xsd:enumeration value="VERIFY_JOB_OBJECTS"/>
			<xsd:enumeration value="ROW_COUNT_VALIDATION"/>			
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="objectMovePhaseType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="NOT_STARTED" />
			<xsd:enumeration value="PRE_DATA_MOVE" />
			<xsd:enumeration value="MOVING_DATA" />
			<xsd:enumeration value="MOVING_STAGING_TO_TARGET" />
			<xsd:enumeration value="POST_DATA_MOVE" />
			<xsd:enumeration value="VALIDATING" />
			<xsd:enumeration value="COMPLETED_SUCCESSFULLY" />
			<xsd:enumeration value="CLEAN_UP" />
			<xsd:enumeration value="BUILD_DATABASE" />
			<xsd:enumeration value="COMPARE_DDL"></xsd:enumeration>
			<xsd:enumeration value="ROW_COUNT_VALIDATION"></xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="jobTaskPhaseType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="INITIATE" />
			<xsd:enumeration value="ACQUISITION" />
			<xsd:enumeration value="APPLY_ROWS" />
			<xsd:enumeration value="BUILD" />
			<xsd:enumeration value="TERMINATE" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="rowCountStatusEnumType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="IN_SYNC" />
			<xsd:enumeration value="OUT_OF_SYNC" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="objectType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="root" />
			<xsd:enumeration value="table" />
			<xsd:enumeration value="journal" />
			<xsd:enumeration value="stored_procedure" />
			<xsd:enumeration value="udf" />
			<xsd:enumeration value="macro" />
			<xsd:enumeration value="view" />
			<xsd:enumeration value="trigger" />
			<xsd:enumeration value="hash_index" />
			<xsd:enumeration value="join_index" />
			<xsd:enumeration value="queue_table" />
			<xsd:enumeration value="replication_group" />
			<xsd:enumeration value="database" />
			<xsd:enumeration value="no_pi_table" />
			<xsd:enumeration value="aggregate_udf" />
			<xsd:enumeration value="aggregate_ordered_function" />
			<xsd:enumeration value="jar" />
			<xsd:enumeration value="external_stored_procedure" />
			<xsd:enumeration value="instance_constructor_method" />
			<xsd:enumeration value="table_function" />
			<xsd:enumeration value="ordered_analytical_function" />
			<xsd:enumeration value="udt" />
			<xsd:enumeration value="authorization" />
			<xsd:enumeration value="glop" />
			<xsd:enumeration value="foreign_server" />
			<xsd:enumeration value="function_alias" />
			<xsd:enumeration value="aster_mr" />
			<xsd:enumeration value="unknown" />
			<xsd:enumeration value="blank" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="objectStatusEnumType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="NONE" />
			<xsd:enumeration value="ARCHIVE" />
			<xsd:enumeration value="COPY" />
			<xsd:enumeration value="EXPORT" />
			<xsd:enumeration value="LOAD" />
			<xsd:enumeration value="UPDATE" />
			<xsd:enumeration value="STREAM" />
			<xsd:enumeration value="COMPLETE" />
			<xsd:enumeration value="FAILED" />
			<xsd:enumeration value="INSERT" />
			<xsd:enumeration value="COMPLETED_WITH_ERRORS" />
			<xsd:enumeration value="SELECT" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="TPTAPIOperatorType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="NONE" />
			<xsd:enumeration value="TPTAPI_LOAD" />
			<xsd:enumeration value="TPTAPI_EXPORT" />
			<xsd:enumeration value="TPTAPI_UPDATE" />
			<xsd:enumeration value="TPTAPI_STREAM" />
		</xsd:restriction>
	</xsd:simpleType>	

	<!-- stepsType -->
	<xsd:complexType name="jobStepType">
		<xsd:sequence>
			<xsd:element name="start_time" type="xsd:dateTime" minOccurs="0" />
			<xsd:element name="end_time" type="xsd:dateTime" minOccurs="0" />
			<xsd:element name="order" type="xsd:int" />
			<xsd:element name="job_step_ID" type="xsd:long" />
			<xsd:element name="step" type="stepEnumType" />
			<xsd:element name="status" type="statusType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="taskStatusType">
		<xsd:sequence>
		    <xsd:element name="jobPlanId" type="xsd:long" />
			<xsd:element name="jobTaskId" type="xsd:long" />
			<xsd:element name="timeStamp" type="xsd:dateTime" />
			<xsd:element name="parentName" type="xsd:string" />
			<xsd:element name="objectName" type="xsd:string" />
			<xsd:element name="agentName" type="xsd:string" nillable="true" />
			<xsd:element name="sequence" type="xsd:long" />
			<xsd:element name="bytesExported" type="xsd:long" />
			<xsd:element name="rowsExported" type="xsd:long" />
			<xsd:element name="bytesInserted" type="xsd:long" />
			<xsd:element name="rowsInserted" type="xsd:long" />
			<xsd:element name="bytesUpdated" type="xsd:long" />
			<xsd:element name="rowsUpdated" type="xsd:long" />
			<xsd:element name="bytesDeleted" type="xsd:long" />
			<xsd:element name="rowsDeleted" type="xsd:long" />
			<xsd:element name="activityCount" type="xsd:long" />
			<xsd:element name="totalRowsProcessed" type="xsd:long" />
			<xsd:element name="totalBytesProcessed" type="xsd:long" />
			<xsd:element name="sourceTableSize" type="xsd:long" />
			<xsd:element name="sourceTableRowCount" type="xsd:long" />
			<xsd:element name="targetTableSize" type="xsd:long" />
			<xsd:element name="targetTableRowCount" type="xsd:long" />
			<xsd:element name="errorRowsCount" type="xsd:long" />
			<xsd:element name="status" type="objectMovePhaseType" />
			<xsd:element name="type" type="objectStatusEnumType" />
			<xsd:element name="object" type="objectType" />
			<xsd:element name="taskStatus" type="statusType" minOccurs="0" />
			<xsd:element name="errorCode" type="xsd:int" />
			<xsd:element name="errorMsg" type="xsd:string" minOccurs="0" />
			<xsd:element name="sequenceNumber" type="xsd:int" />
			<xsd:element name="status_source" type="xsd:string" minOccurs="0" />
			<xsd:element name="taskType" type="xsd:string" minOccurs="0" />
			<xsd:element name="jobTaskPhase" type="jobTaskPhaseType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="tptid" type="xsd:string" minOccurs="0"/>
			<xsd:element name="sourceSessions" type="xsd:int" default="-1" minOccurs="0"/>
			<xsd:element name="targetSessions" type="xsd:int" default="-1" minOccurs="0"/>
			<xsd:element name="dataStreams" type="xsd:int" default="-1" minOccurs="0"/>
			<xsd:element name="utility" type="xsd:string" minOccurs="0"/>
			<xsd:element name="actualSourceSessions" type="xsd:int" default="-1" minOccurs="0"/>
			<xsd:element name="actualTargetSessions" type="xsd:int" default="-1" minOccurs="0"/>
			<xsd:element name="startTime" type="xsd:dateTime" minOccurs="0"/>
			<xsd:element name="stopTime" type="xsd:dateTime" minOccurs="0"/>
			<xsd:element name="runtimeInfo" type="xsd:string" minOccurs="0"/>
			<xsd:element name="postLoadSqlList" minOccurs="0">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="postLoadSql" type="PostLoadSQLType"
							minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="syncBarrierMessageType">
		<xsd:sequence>
			<xsd:element name="jobTaskId" type="xsd:long" />
		    <xsd:element name="instanceId" type="xsd:int" />
		    <xsd:element name="operatorType" type="TPTAPIOperatorType" />
		    <xsd:element name="endMethod" type="xsd:boolean" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="syncTelinfoMessageType">
		<xsd:sequence>
			<xsd:element name="jobTaskId" type="xsd:long" />
		    <xsd:element name="instanceId" type="xsd:int" />
		    <xsd:element name="operatorType" type="TPTAPIOperatorType" />
		    <xsd:element name="telinfoLen" type="xsd:long" />
		    <xsd:element name="telinfo" type="xsd:byte" maxOccurs="unbounded" minOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="syncSchemaMessageType">
		<xsd:sequence>
			<xsd:element name="jobTaskId" type="xsd:long" />
		    <xsd:element name="instanceId" type="xsd:int" />
		    <xsd:element name="operatorType" type="TPTAPIOperatorType" />
		    <xsd:element name="schemaLen" type="xsd:long" />
		    <xsd:element name="schemaNumCols" type="xsd:long" />
		    <xsd:element name="schemaCols" type="xsd:byte" maxOccurs="unbounded" minOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	

	<xsd:complexType name="taskRowCountStatusType">
		<xsd:sequence>
            <xsd:element name="jobPlanID" type="xsd:long" />
			<xsd:element name="jobStepID" type="xsd:long" />
			<xsd:element name="timeStamp" type="xsd:dateTime" />
			<xsd:element name="parentName" type="xsd:string" />
			<xsd:element name="objectName" type="xsd:string" />
			<xsd:element name="targetParentName" type="xsd:string" />
			<xsd:element name="targetObjectName" type="xsd:string" />
			<xsd:element name="sequence" type="xsd:long" />
			<xsd:element name="sourceRowCount" type="xsd:long" />
			<xsd:element name="targetRowCount" type="xsd:long" />
			<xsd:element name="status" type="rowCountStatusEnumType" />
			<xsd:element name="validationtype" type="RowCountValidationType" />	
			<xsd:element name="errorString" type="xsd:string" />		
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="streamProcessInfoType">
		<xsd:sequence>
            <xsd:element name="utility" type="xsd:string" />
			<xsd:element name="jobTaskID" type="xsd:long" />
			<xsd:element name="agentName" type="xsd:string" />
			<xsd:element name="nodeName" type="xsd:string" minOccurs="0"/>
            <xsd:element name="operator" type="xsd:string" />
			<xsd:element name="streamID" type="xsd:int" />
			<xsd:element name="bytesProcessed" type="xsd:long" />
			<xsd:element name="processSpeed" type="xsd:long" />
			<xsd:element name="timestamp" type="xsd:dateTime" />
			<xsd:element name="objectName" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="jobExecutionLogLineInfoType">
		<xsd:sequence>
            <xsd:element name="jobExecutionId" type="xsd:long" />
            <xsd:element name="jobDefId" type="xsd:long" />
			<xsd:element name="eventType" type="xsd:string" />
			<xsd:element name="startTime" type="xsd:dateTime" />
			<xsd:element name="stopTime" type="xsd:dateTime" />
			<xsd:element name="logTime" type="xsd:dateTime" />
			<xsd:element name="sequence" type="xsd:long" />
			<xsd:element name="logText" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="LockedObjectStatusType">
		<xsd:sequence>
			<xsd:element name="parentName" type="xsd:string" />
			<xsd:element name="objectName" type="xsd:string" />
			<xsd:element name="lockOnSource" type="xsd:boolean" />
			<xsd:element name="objectType" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="blockedJobStatusType">
		<xsd:sequence>
            <xsd:element name="jobDefinitionID" type="xsd:long" />
			<xsd:element name="jobExecutionID" type="xsd:long" />
			<xsd:element name="lockedObjectsStatusType" type="LockedObjectStatusType"
				maxOccurs="unbounded" minOccurs="0" />
			<xsd:element name="lastCheckTimeStamp" type="xsd:dateTime" />
			<xsd:element name="blockStartTimeStamp" type="xsd:dateTime" />
			<xsd:element name="lockedSystem" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="logLineType">
		<xsd:sequence>
			<xsd:element name="log" type="xsd:string" />
			<xsd:element name="streamIndex" type="xsd:long" />
		</xsd:sequence>
	</xsd:complexType>
		
	<!--  jobExecutionType -->
	<xsd:complexType name="jobExecutionType">
		<xsd:sequence>
			<xsd:element name="job_name" type="xsd:string" />
			<xsd:element name="job_execution_name" type="xsd:string" minOccurs="0"/>
			<xsd:element name="job_size" type="xsd:long" minOccurs="0" />		
			<xsd:element name="job_instance_ID" type="xsd:long" />
			<xsd:element name="job_execution_ID" type="xsd:long" />
			<xsd:element name="job_plan_ID" type="xsd:long" />
			<xsd:element name="current_step" type="xsd:long" />
			<xsd:element name="restart_plan_ID" type="xsd:long" />
			<xsd:element name="submit_time" type="xsd:dateTime" minOccurs="0" />
			<xsd:element name="start_time" type="xsd:dateTime" minOccurs="0" />
			<xsd:element name="end_time" type="xsd:dateTime" minOccurs="0" />
			<xsd:element name="status" type="statusType" />
			<xsd:element name="user_name" type="xsd:string" minOccurs="0"/>
			<xsd:element name="job_priority" type="jobPriorityType" />
			<xsd:element name="job_step" type="jobStepType"
				maxOccurs="unbounded" minOccurs="0" />
			<xsd:element name="task_status" type="taskStatusType"
				maxOccurs="unbounded" minOccurs="0" />
			<xsd:element name="row_count_status" type="taskRowCountStatusType"
				maxOccurs="unbounded" minOccurs="0" />
			<xsd:element name="blocked_job_status" type="blockedJobStatusType" nillable="true"/>
			<xsd:element name="log_line" type="logLineType"
				maxOccurs="unbounded" minOccurs="0" />
			<xsd:element name="stream_process_info" type="streamProcessInfoType"
				maxOccurs="unbounded" minOccurs="0" />
			<xsd:element name="job_execution_log_line_info" type="jobExecutionLogLineInfoType"
				maxOccurs="unbounded" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	
	<!--  listJobsRecordType -->
	<xsd:complexType name="listJobsRecordType">
		<xsd:sequence>
			<xsd:element name="job_name" type="xsd:string" />
			<xsd:element name="job_execution_name" type="xsd:string" minOccurs="0"/>
			<xsd:element name="submit_time" type="xsd:dateTime" minOccurs="0"/>
			<xsd:element name="start_time" type="xsd:dateTime" minOccurs="0"/>
			<xsd:element name="end_time" type="xsd:dateTime" minOccurs="0"/>
			<xsd:element name="status" type="statusType" />
			<xsd:element name="job_priority" type="jobPriorityType" />
		</xsd:sequence>
	</xsd:complexType>

	<!--  agentAnnouncementType -->
	<xsd:complexType name="agentInfoType">
		<xsd:sequence>
			<xsd:element name="agent_id" type="xsd:string"/>
			<xsd:element name="agent_status" type="agentStatusType"/>
			<xsd:element name="agent_hostname" type="xsd:string"/>
			<xsd:element name="agent_username" type="xsd:string"/>
			<xsd:element name="agent_public_key" type="xsd:string"/>
			<xsd:element name="agent_max_concurrent_tasks" type="xsd:int"/>
			<xsd:element name="agent_current_task_count" type="xsd:int"/>
			<xsd:element name="agent_monitor_property_file_change" type="xsd:boolean" default="true"/>
            <xsd:element name="agent_uuid" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	
	
	<!-- sessionsAndStreamsType -->
	<xsd:complexType name="sessionsAndStreamsType">
	    <xsd:simpleContent>
	      <xsd:extension base="xsd:int">
	        <xsd:attribute name="type" type="xsd:string"/>
	      </xsd:extension>
	    </xsd:simpleContent>
   </xsd:complexType>

<!--  Agent and Daemon -->

	<!-- dmAgentAnnouncement -->
	<xsd:element name="dmAgentAnnouncement">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="agent_info" type="agentInfoType"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmAgent Unexpected Error -->
	<xsd:element name="dmAgentUnexpectedError">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
						<xsd:element name="errorMessage" type="xsd:string"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:simpleType name="agentStatusType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="started" />
			<xsd:enumeration value="stopped" />
		</xsd:restriction>
	</xsd:simpleType>

	<!-- DMPingAgent -->
	<xsd:element name="dmPingAgent">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- DMPingAgent -->
	<xsd:element name="dmUpdateAgentProperty">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
            		<xsd:sequence>
						<xsd:element name="enable_monitor_agent_property_change" minOccurs="0" type="xsd:boolean" default="false" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- SQLTask -->
	<xsd:element name="dmSQLTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
						<xsd:element name="target_db_type" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_db_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_db_port" minOccurs="0" type="xsd:string" />	
						<xsd:element name="target_user_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_system_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_logon_mech" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_logon_mech_data" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_account_id" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_user_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_system_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_logon_mech" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_logon_mech_data" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_account_id" minOccurs="0" type="xsd:string" />
						<xsd:element name="sql_statement_list" type="sqlStatementType" minOccurs="0" maxOccurs="unbounded" />
						<xsd:element name="source_sql_statement_list" type="sqlStatementType" minOccurs="0" maxOccurs="unbounded" />
						<xsd:element name="object_list" type="tableType" minOccurs="0" maxOccurs="unbounded" />
						<xsd:element name="stats_task_list" type="statsTaskType" minOccurs="0" maxOccurs="unbounded" />
						<xsd:element name="job_task" type="jobTaskType" />
						<xsd:element name="move_phase" type="objectMovePhaseType" />
						<xsd:element name="clean_up" type="xsd:boolean" default="false"  />
						<xsd:element name="copy_stats" type="xsd:boolean" default="false"  />
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />
						<xsd:element name="data_encrypted_by_agent" nillable="true" maxOccurs="unbounded" type="dmAgentEncryptedBase" />
						<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string"></xsd:element>		
						<xsd:element name="deadlock_retry_enabled" minOccurs="0" type="xsd:boolean" default="false"></xsd:element>	
						<xsd:element name="deadlock_retry_interval" minOccurs="0" type="xsd:long" default="0"></xsd:element>
						<xsd:element name="deadlock_retry_max_attempts" minOccurs="0" type="xsd:int" default="0"></xsd:element>
						<xsd:element name="source_jdbc_connection_string" type="xsd:string" minOccurs="0"/>
						<xsd:element name="target_jdbc_connection_string" type="xsd:string" minOccurs="0"/>

					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
<!-- AsterMRTask -->
	<xsd:element name="dmAsterMRTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
					
						<xsd:element name="source_db_type" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_db_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_db_port" minOccurs="0"
							type="xsd:string" />	
						
							
						<xsd:element name="source_user_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_system_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_logon_mech" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_logon_mech_data" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_account_id" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						
						
						<xsd:element name="source_schema_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_parent" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_table" minOccurs="0" type="xsd:string" />
						
						<xsd:element name="target_db_type" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_db_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_db_port" minOccurs="0"
							type="xsd:string" />	
						
							
						<xsd:element name="target_user_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_system_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_logon_mech" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_logon_mech_data" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_account_id" type="xsd:string" minOccurs="0" />
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						
						<xsd:element name="target_schema_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_parent" minOccurs="0" type="xsd:string" />
						<xsd:element name="target_table" minOccurs="0" type="xsd:string" />
						<xsd:element name="td_error_table_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="td_ucv_table_name" minOccurs="0" type="xsd:string" />
						
						<xsd:element name="sql_mr_statement" type="xsd:string" />
						
						<xsd:element name="aster_progress_query" minOccurs="0"
							type="xsd:string" />
							
						<xsd:element name="teradata_progress_size" minOccurs="0"
							type="xsd:string" />
						
						<xsd:element name="teradata_progress_rowcount_size" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="dim_table_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="vworkers_count" type="xsd:int" minOccurs="0"
							default="0" />
						
						<xsd:element name="amps_count" type="xsd:int" minOccurs="0"
							default="0" />
							
						<!-- 
						<xsd:element name="sql_statement_list" type="sqlStatementType"
							minOccurs="0" maxOccurs="unbounded" />
						<xsd:element name="object_list" type="tableType"
							minOccurs="0" maxOccurs="unbounded" />
							 -->
						<xsd:element name="object_list" type="tableType"
							minOccurs="0" maxOccurs="unbounded" />
							
						<xsd:element name="job_task" type="jobTaskType" />
						<xsd:element name="move_phase" type="objectMovePhaseType" />
						<xsd:element name="clean_up" type="xsd:boolean" default="false"  />
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />
						
								
						
						<xsd:element name="deadlock_retry_enabled" minOccurs="0" type="xsd:boolean" default="false"></xsd:element>	
						<xsd:element name="deadlock_retry_interval" minOccurs="0" type="xsd:long" default="0"></xsd:element>
						<xsd:element name="deadlock_retry_max_attempts" minOccurs="0" type="xsd:int" default="0"></xsd:element>					
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- TPTAPITask  -->
	<xsd:element name="dmTPTAPIPingTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	

	<!-- TPTAPITask  -->
	<xsd:element name="dmTPTAPITask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
						<xsd:element name="source_tdpid" type="xsd:string" />
						<xsd:element name="source_operator_type" type="TPTAPIOperatorType"
							default="NONE" />
						<xsd:element name="status" minOccurs="0" type="xsd:string" />
						<xsd:element name="source_username" type="xsd:string" />
						<xsd:element name="source_logon_mech" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_logon_mech_data" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_account_id" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_logon_mechanism" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_logon_mechanism_data" type="xsd:string" minOccurs="0" />
						<xsd:element name="source_select_statement" type="sqlStatementType" />
						<xsd:element name="source_parent" type="xsd:string" />
						<xsd:element name="source_table" type="xsd:string" />
						<xsd:element name="source_sessions_count" type="xsd:int"
							default="1" />
						<xsd:element name="source_instance_count" type="xsd:int"
							default="1" />
						<xsd:element name="source_export_without_spool" type="xsd:int" />
						<xsd:element name="target_operator_type" type="TPTAPIOperatorType"
							default="NONE" />
						<xsd:element name="target_tdpid" type="xsd:string" />
						<xsd:element name="target_username" type="xsd:string" />
						<xsd:element name="target_account_id" type="xsd:string" minOccurs="0" />
						<xsd:element name="target_logon_mechanism" type="xsd:string" minOccurs="0" />
						<xsd:element name="target_logon_mechanism_data" type="xsd:string" minOccurs="0" />
						<xsd:element name="target_parent" type="xsd:string" />
						<xsd:element name="target_table" type="xsd:string" />
						<xsd:element name="target_log_table" type="xsd:string" />
						<xsd:element name="target_error_table1" type="xsd:string" />
						<xsd:element name="target_error_table2" type="xsd:string" />
						<xsd:element name="target_work_table" type="xsd:string" />
						<xsd:element name="target_dml_statement" type="sqlStatementType"
							minOccurs="0" maxOccurs="unbounded" />
						<xsd:element name="target_sessions_count" type="xsd:int"
							default="1" />
						<xsd:element name="target_instance_count" type="xsd:int"
							default="1" />
						<xsd:element name="performance_report_rate" type="xsd:int"
							default="0" />
						<xsd:element name="log_level" minOccurs="0" type="xsd:int" />
						<xsd:element name="log_file_name_preface" type="xsd:string" />
						<xsd:element name="log_dir" minOccurs="0" type="xsd:string" />
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />
						<xsd:element name="session_charset" type="xsd:string" />
						<xsd:element name="table_type" type="objectType" />
						<xsd:element name="job_task" type="jobTaskType" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />
						<xsd:element name="instance_id" type="xsd:int"
							default="1" maxOccurs="1" minOccurs="1"/>
						<xsd:element name="instance_id_list" type="xsd:int"
							maxOccurs="unbounded" minOccurs="0"/>
						<xsd:element name="max_instances" type="xsd:int"
							default="1" />
						<xsd:element name="cleanUp_agent" type="xsd:boolean" default="false" />
						<xsd:element name="clean_up_job_plan_id" type="xsd:long" default="0" />
						<xsd:element name="clean_up_job_task_id" type="xsd:long" default="0" />
						<xsd:element name="move_phase" type="objectMovePhaseType" />
						<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string"></xsd:element>								
						<xsd:element name="source_char_encoding" minOccurs="0" type="xsd:string"></xsd:element>							
						<xsd:element name="target_char_encoding" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="source_unicodepassthrough" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="target_unicodepassthrough" minOccurs="0" type="xsd:string"></xsd:element>	
						<xsd:element name="cliNetrace" type="xsd:int" minOccurs="0" />
						<xsd:element name="cliNetraceBufLen" type="xsd:int" minOccurs="0" />
						<xsd:element name="tptDebug" type="xsd:int" minOccurs="0" />
                        <xsd:element name="source_tpt_connection" type="xsd:string" minOccurs="0" />
                        <xsd:element name="target_tpt_connection" type="xsd:string" minOccurs="0" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- JDBCTask  -->
	<xsd:element name="dmJDBCTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
						<xsd:element name="source_tdpid"
							type="xsd:string" />
						<xsd:element name="source_username"
							type="xsd:string" />
						<xsd:element name="source_logon_mech"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="source_logon_mech_data"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="source_account_id"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="source_select_statement"
							type="xsd:string" />
						<xsd:element name="source_parent"
							type="xsd:string" />
						<xsd:element name="source_table"
							type="xsd:string" />
						<xsd:element name="target_tdpid"
							type="xsd:string" />
						<xsd:element name="target_username"
							type="xsd:string" />
						<xsd:element name="target_logon_mech"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_logon_mech_data"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_account_id"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_parent"
							type="xsd:string" />
						<xsd:element name="target_table"
							type="xsd:string" />
						<xsd:element name="target_log_table"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_error_table1"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_error_table2"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_work_table"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_insert_statement"
							type="xsd:string" />
						<xsd:element name="is_fast_export_usable"
							type="xsd:boolean" default="false" />
						<xsd:element name="is_fast_load_usable"
							type="xsd:boolean" default="false" />
						<xsd:element name="use_encryption"
							type="xsd:boolean" default="false" />
						<xsd:element name="performance_report_rate"
							type="xsd:int" default="0" />
                        <xsd:element name="session_charset" type="xsd:string"></xsd:element>					
                        <xsd:element name="table_type"
							type="objectType" />
						<xsd:element name="job_task" type="jobTaskType" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />
						<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />
						<xsd:element name="move_phase" type="objectMovePhaseType" />
						<xsd:element name="source_jdbc_connection_string" type="xsd:string" minOccurs="0"/>
						<xsd:element name="target_jdbc_connection_string" type="xsd:string" minOccurs="0"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- DSATask -->
	<xsd:element name="dmDSATask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
					    <xsd:element name="log_level" minOccurs="0" type="xsd:int" />
						<xsd:element name="dsa_job_name" type="xsd:string" />
						<xsd:element name="source_user" type="xsd:string" />
						<xsd:element name="target_user" type="xsd:string" />
						<xsd:element name="job_model_json" type="xsd:string" nillable="true"/>
						<xsd:element name="url" type="xsd:string" />
                        <xsd:element name="dmUrl" type="xsd:string" />
                        <xsd:element name="isDscColocateDM" type="xsd:boolean" />					
						<xsd:element name="shared_pipe_target_group" type="xsd:string"
							minOccurs="0" />
						<xsd:element name="job_task" type="jobTaskType" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />
						<xsd:element name="database_client_encryption" type="xsd:boolean"
							default="false" />
					    <xsd:element name="performance_report_rate" type="xsd:int" default="0" />
						<xsd:element name="move_phase" type="objectMovePhaseType" />
						<xsd:element name="server_name" minOccurs="0" type="xsd:string" />
						<xsd:element name="groupUserPool" minOccurs="0" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

    <xsd:element name="dmCS2Task">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="dmAgentCommandBase">
                    <xsd:sequence>
                        <xsd:element name="log_level" minOccurs="0" type="xsd:int" />
                        <xsd:element name="cs2_job_name" type="xsd:string" />
                        <xsd:element name="source_user" type="xsd:string" />
                        <xsd:element name="target_user" type="xsd:string" />
                        <xsd:element name="job_model_json" type="xsd:string" nillable="true"/>
                        <xsd:element name="url" type="xsd:string" />
                        <xsd:element name="dmUrl" type="xsd:string" />
                        <xsd:element name="job_task" type="jobTaskType" />
                        <xsd:element name="data_encrypted_by_agent" nillable="true"
                                     maxOccurs="unbounded" type="dmAgentEncryptedBase" />
                        <xsd:element name="database_client_encryption" type="xsd:boolean"
                                     default="false" />
                        <xsd:element name="performance_report_rate" type="xsd:int" default="0" />
                        <xsd:element name="move_phase" type="objectMovePhaseType" />
                        <xsd:element name="server_name" minOccurs="0" type="xsd:string" />
                        <xsd:element name="groupUserPool" minOccurs="0" type="xsd:string" />
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

	<!-- T2TTask  -->
	<xsd:element name="dmT2TTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
					    <xsd:element name="t2t_statement"
							type="sqlStatementType" />
						<xsd:element name="source_tdpid"
							type="xsd:string" />
						<xsd:element name="source_username"
							type="xsd:string" />
						<xsd:element name="source_logon_mech"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="source_logon_mech_data"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="source_account_id"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="source_parent"
							type="xsd:string" />
						<xsd:element name="source_table"
							type="xsd:string" />
						<xsd:element name="target_tdpid"
							type="xsd:string" />
						<xsd:element name="target_username"
							type="xsd:string" />
						<xsd:element name="target_logon_mech"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_logon_mech_data"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_account_id"
							type="xsd:string" minOccurs="0" />
						<xsd:element name="target_parent"
							type="xsd:string" />
						<xsd:element name="target_table"
							type="xsd:string" />
						<xsd:element name="use_encryption"
							type="xsd:boolean" default="false" />
						<xsd:element name="performance_report_rate"
							type="xsd:int" default="0" />
                        <xsd:element name="session_charset" type="xsd:string"></xsd:element>					
                        <xsd:element name="table_type"
							type="objectType" />
						<xsd:element name="job_task" type="jobTaskType" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />
						<xsd:element name="move_phase" type="objectMovePhaseType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
		
	<xsd:element name="dmSysCmdTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
						<xsd:element name="sys_cmd_list" type="sysCmdType"
							maxOccurs="unbounded" />
						<xsd:element name="job_task" type="jobTaskType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:complexType name="keyValueStringPair">
		<xsd:sequence>
			<xsd:element name="key" type="xsd:string" nillable="false" />
			<xsd:element name="value" type="xsd:string" nillable="false" />
		</xsd:sequence>
	</xsd:complexType>
	
	<!--
		<xsd:element name="dmAgentTask"> <xsd:complexType>
		<xsd:complexContent> <xsd:extension base="dmCommandBase">
		<xsd:sequence> <xsd:element name="agent_ID" minOccurs="0"
		type="xsd:string" /> <xsd:element name="job_plan_ID" minOccurs="0"
		type="xsd:long" /> <xsd:element name="job_step_ID" minOccurs="0"
		type="xsd:long" /> <xsd:element name="job_task_ID" minOccurs="0"
		type="xsd:long" /> </xsd:sequence> </xsd:extension>
		</xsd:complexContent> </xsd:complexType> </xsd:element>
	-->
	
	<xsd:element name="dmJobTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_task" type="jobTaskType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="jobTaskType">
		<xsd:sequence>
			<xsd:element name="jobPlanID" type="xsd:long" default="0" />
			<xsd:element name="jobStepID" type="xsd:long" default="0" />
			<xsd:element name="jobTaskID" type="xsd:long" default="0" />
			<xsd:element name="agentID" type="xsd:string" minOccurs="0" />
			<xsd:element name="queryBand" type="xsd:string" minOccurs="0" />
			<xsd:element name="useQueryBandSource" type="xsd:boolean" minOccurs="0" />
			<xsd:element name="useQueryBandTarget" type="xsd:boolean" minOccurs="0" />
			<xsd:element name="lastUpdateTime" type="xsd:long" minOccurs="0" />
			<xsd:element name="baseJobName" type="xsd:string" minOccurs="0" />
			<xsd:element name="utility" type="xsd:string" minOccurs="0" />
			<xsd:element name="srcSystem" type="xsd:string" minOccurs="0" />
			<xsd:element name="targetSystem" type="xsd:string" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="sqlType">
		<!-- Restricting the values to a set of value using 'enumeration' -->
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="NONE" />
			<xsd:enumeration value="ADD_EXISTING_INDICES" />
			<xsd:enumeration value="ADD_SECONDARY_INDEX" />
			<xsd:enumeration value="ALTER_TRIGGER" />
			<xsd:enumeration value="COPY_STATS" />
			<xsd:enumeration value="CREATE_STAGING_TABLE" />
			<xsd:enumeration value="CREATE_TARGET_TABLE" />
			<xsd:enumeration value="CREATE_TRIGGER" />
			<xsd:enumeration value="DELETE_ALL" />
			<xsd:enumeration value="DELETE_MATCHING_ROWS" />
			<xsd:enumeration value="DELETE_PARTIAL_ROWS" />
			<xsd:enumeration value="DROP" />
			<xsd:enumeration value="DROP_PRIMARY_KEY_SI" />
			<xsd:enumeration value="DROP_SECONDARY_INDEX" />
			<xsd:enumeration value="DROP_STAGING_TABLE" />
			<xsd:enumeration value="DROP_TARGET_INDICES" />
			<xsd:enumeration value="HARD_DELETE" />
			<xsd:enumeration value="INSERT" />
			<xsd:enumeration value="INSERT_SELECT" />
			<xsd:enumeration value="RENAME_STAGING_TABLE" />
			<xsd:enumeration value="RENAME_TABLE" />
			<xsd:enumeration value="REVALIDATE_TABLE" />
			<xsd:enumeration value="SELECT" />
			<xsd:enumeration value="UPDATE" />
			<xsd:enumeration value="UPSERT" />
			<xsd:enumeration value="MERGE" />
			<xsd:enumeration value="DELETE_ARC_PARTIAL" />
			<xsd:enumeration value="CHANGE_DEFAULT_DATABASE" />
			<xsd:enumeration value="REDISTRIBUTE_JAR" />
			<xsd:enumeration value="CREATE_VIEW_DATA_TABLE" />   
			<xsd:enumeration value="ASTER_MR_FUNCTION" />
			<xsd:enumeration value="ASTER_CREATE_TARGET_TABLE" />
			<xsd:enumeration value="ASTER_CREATE_TARGET_TABLE_USING_SQLMR" />
			<xsd:enumeration value="ASTER_DROP_TARGET_TABLE"/>
			<xsd:enumeration value="ASTER_DROP_STAGING_TABLE"/>
			<xsd:enumeration value="ASTER_CREATE_STAGING_TABLE"/>
			<xsd:enumeration value="ASTER_CREATE_DIMENSION_TABLE"/>
			<xsd:enumeration value="ASTER_MERGE"/>
			<xsd:enumeration value="ASTER_DELETE_ALL"/>
			<xsd:enumeration value="ASTER_DELETE_MATCHING_ROWS"/>
			<xsd:enumeration value="ASTER_INSERT_SELECT"/>
			<xsd:enumeration value="ASTER_ADD_SI"/>
			<xsd:enumeration value="ASTER_CREATE_DRIVER_TABLE"/>
			<xsd:enumeration value="ASTER_DROP_DRIVER_TABLE"/>
			<xsd:enumeration value="DROP_TARGET_TABLE"/>
			<xsd:enumeration value="RENAME_STAGING_TABLE_TO_TARGET_TABLE"/>
			<xsd:enumeration value="DIAGNOSTIC_IDCOL_TO_DEFAULT"/>
			<xsd:enumeration value="FOREIGN_SERVER_INSERT_SELECT"/>
			<xsd:enumeration value="CREATE_SOURCE_STAGING_TABLE"/>
			<xsd:enumeration value="MOVE_DATA_TO_SOURCE_STAGING"/>
			<xsd:enumeration value="DROP_SOURCE_STAGING_TABLE"/>
            <xsd:enumeration value="FOREIGN_SERVER_INSERT_SELECT_TARGET"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="sqlStatementType">
		<xsd:sequence>
			<xsd:element name="sql_text" minOccurs="0" type="xsd:string" />
			<xsd:element name="job_task_ID" minOccurs="0" type="xsd:long" />
			<xsd:element name="sequence_number" minOccurs="0" type="xsd:int" />
			<xsd:element name="type" minOccurs="0" type="sqlType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="sysCmdType">
		<xsd:sequence>
			<xsd:element name="cmd_action" type="xsd:string" />
			<xsd:element name="cmd_args" type="xsd:string" />
			<xsd:element name="blockMode" type="xsd:boolean" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="dmLogStatus">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="jobTaskId" type="xsd:long" />
						<xsd:element name="type" type="objectStatusEnumType" />
						<xsd:element name="logLine" type="xsd:string" />
						<xsd:element name="logCode" type="xsd:int" />
						<xsd:element name="time" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmJobTaskStatus">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="job_task_status" type="taskStatusType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmSyncBarrierMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="sync_barrier_message" type="syncBarrierMessageType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmSyncTelinfoMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="sync_telinfo_message" type="syncTelinfoMessageType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmSyncSchemaMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="sync_schema_message" type="syncSchemaMessageType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmAgentAbortMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="jobTaskId" type="xsd:long" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmAgentRetrievedMacroNameMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="jobTaskId" type="xsd:long" />
						<xsd:element name="macroName" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmAgentRetrievedActualSessionsMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="jobTaskId" type="xsd:long" />
						<xsd:element name="actualSessions" type="xsd:string" />
						<xsd:element name="operatorType" type="xsd:int" />
						<xsd:element name="instanceID" type="xsd:int" /> 
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!--  Define triggers -->
	<xsd:element name="triggers">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="trigger" minOccurs="0" maxOccurs="unbounded"
					type="triggerType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="triggerType">
		<xsd:sequence>
			<!-- Qualifier database name for the trigger name -->
			<xsd:element name="database" nillable="false" type="xsd:string" />
			
			<!-- Qualifier database name for the subject table -->
			<xsd:element name="subject_table_database" nillable="false"
				type="xsd:string" />
			
			<!-- Name of the subject table to be associated with the trigger -->
			<xsd:element name="table" nillable="false" type="xsd:string" />
					
			<!-- Trigger name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />
			
			<!-- Trigger action time for trigger to be fired -->
			<xsd:element name="action_time" type="actionType"
				default="after" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>
	
	<xsd:complexType name="actionType">
		<xsd:simpleContent>
			<xsd:extension base="actionTimeType">
				<xsd:attribute name="enabled" type="enabledFlag"
					default="no" />
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<!-- actionTimeType -->
	<xsd:simpleType name="actionTimeType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Bb][Ee][Ff][Oo][Rr][Ee]|[Aa][Ff][Tt][Ee][Rr]"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="enabledFlag">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Yy][Ee][Ss]|[Nn][Oo]"/>
		</xsd:restriction>
	</xsd:simpleType>

	<!--  Define Join Index/Hash Index -->
	<xsd:element name="indices">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="index" minOccurs="0" maxOccurs="unbounded"
					type="joinIndexType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:simpleType name="indexEnumType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Hh][Aa][Ss][Hh]_[Ii][Nn][Dd][Ee][Xx]|[Jj][Oo][Ii][Nn]_[Ii][Nn][Dd][Ee][Xx]"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:complexType name="associateTableType">
		<xsd:sequence>
			<xsd:element name="database" type="xsd:string" />
			<xsd:element name="table" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="joinIndexType">
		<xsd:sequence>
			<!-- index name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />

			<!-- Database that owns the index -->
            <xsd:element name="target_name" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
            <xsd:element name="index_database" nillable="false"
				type="xsd:string" />
			<xsd:element name="map" minOccurs="0" maxOccurs="1"  type="xsd:string" />
            <xsd:element name="colocate" minOccurs="0" maxOccurs="1"  type="xsd:string" />
			<!-- index type -->
			<xsd:element name="target_index_database"
				type="targetDatabaseType" maxOccurs="1" minOccurs="0">
			</xsd:element>
			<xsd:element name="index_type" nillable="false"
				type="indexEnumType" />

			<!-- associate table types -->
			<xsd:element name="associate_table" minOccurs="0"
				maxOccurs="unbounded" type="associateTableType" />


		</xsd:sequence>
		<xsd:attribute name="copyStats" type="booleanType" use="optional"/>
		<xsd:attribute name="selection" type="selection" use="required" />
		
	</xsd:complexType>		

	<!--  Define journals -->
	<xsd:element name="journals">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="journal" minOccurs="0" maxOccurs="unbounded"
					type="journalType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="journalType">
		<xsd:sequence>
			<!-- Database that owns the journal -->
			<xsd:element name="journal_database" nillable="false"
				type="xsd:string" />
		
			<!-- Journal name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>
	<!--  #################   Define View ####################### -->
	<xsd:element name="views">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="view" minOccurs="1" maxOccurs="unbounded"
					type="viewType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="viewType">
		<xsd:sequence>
			<!-- view name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />	
			<!-- view database -->
			<xsd:element name="database" nillable="false" type="xsd:string" />
			<xsd:element name="db_client_encryption" minOccurs="0" type="triStateType" default="unspecified"/>
			<xsd:element name="view_data_table" type="viewDataTableType" minOccurs="0" maxOccurs="1"/>
			
			<xsd:element name="use_source_staging_table" minOccurs="0"
				maxOccurs="1" type="booleanType" default="false" />
            <xsd:element name="source_staging_database" type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
			<!-- target_staging_database new tag used to replace staging_database -->
			<xsd:element name="target_staging_database" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />

			<xsd:element name="staging_database"
				type="targetDatabaseType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="staging_database_for_table"
				type="targetDatabaseType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="force_target_staging_table"
				type="booleanType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="validate_row_count" minOccurs="0"
				maxOccurs="1" type="RowCountValidationType" default="none" />
			<xsd:element name="compare_ddl" minOccurs="0" maxOccurs="1"
				type="triStateType" default="unspecified" />
				<!-- partial table copy -->
			<xsd:element name="sql_where_clause" minOccurs="0"
				maxOccurs="1" type="xsd:string" />
			<xsd:element ref="key_columns" minOccurs="0" maxOccurs="1" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
		<xsd:attribute name="copyData" type="booleanType" use="optional"
			default="false" />
	</xsd:complexType>
	
	<xsd:complexType name="viewDataTableType">
		<xsd:sequence>
			<xsd:element name="target_table" type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="target_database" type="xsd:string" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	
	<!-- ####################################################### -->
	
	
	<!--  #################   Define Foreign_servers ####################### -->
	<xsd:element name="foreign_servers">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="foreign_server" minOccurs="1" maxOccurs="unbounded"
					type="foreignServerType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:complexType name="foreignServerType">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="map" minOccurs="0" maxOccurs="1"  type="xsd:string" />
            <xsd:element name="colocate" minOccurs="0" maxOccurs="1"  type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>	
		
	<!-- ####################################################### -->
	
	<!--  #################   Define Function Aliases ####################### -->
	<xsd:element name="function_aliases">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="function_alias" minOccurs="1" maxOccurs="unbounded"
					type="functionAliasType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="functionAliasType">
		<xsd:sequence>
			<!-- function Alias name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />	
			<!-- function Alias database name -->
			<xsd:element name="database" nillable="false" type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>	
	<!-- ####################################################### -->
	
	<!--  #################   Define TRACE_LOG ####################### -->
	<xsd:complexType name="traceLogType">
		<xsd:sequence>
			<xsd:element name="cli_trace_log" minOccurs="0" maxOccurs="1"
				type="cliTraceLogType" />
			<xsd:element name="tpt_trace_log" minOccurs="0" maxOccurs="1"
				type="tptTraceLogType" />				
		</xsd:sequence>		
	</xsd:complexType>	

	<xsd:complexType name="cliTraceLogType">
		<xsd:sequence>
			<xsd:element name="netrace" type="xsd:int" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="netrace_buf_len" type="xsd:int" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:complexType name="tptTraceLogType">
		<xsd:sequence>
			<xsd:element name="tptapi_debug" type="xsd:int" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>			
	<!-- ####################################################### -->
	
			
	<!--  #################   Define Macro ####################### -->
	<xsd:element name="macros">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="macro" minOccurs="1" maxOccurs="unbounded"
					type="macroType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="macroType">
		<xsd:sequence>
			<!-- macro name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />	
			<!-- macro database -->
			<xsd:element name="database" nillable="false" type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>
	
	
	<!--  #################   Define Schema ####################### -->
	<xsd:element name="schemas">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="schema" minOccurs="1" maxOccurs="unbounded"
					type="schemaType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="schemaType">
		<xsd:sequence>
			<!-- schema name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />	
			<xsd:element name="compare_ddl" minOccurs="0" maxOccurs="1"
				type="triStateType" default="unspecified" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>
	
		<!--  #################   Define Stored Procedures ####################### -->
	<xsd:element name="stored_procedures">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="stored_procedure" minOccurs="1" maxOccurs="unbounded"
					type="storedProcedureType" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="storedProcedureType">
		<xsd:sequence>
			<!-- stored procedure name -->
			<xsd:element name="name" nillable="false" type="xsd:string" />	
			<!-- stored procedure database -->
			<xsd:element name="database" nillable="false" type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="selection" type="selection" use="required" />
	</xsd:complexType>


    <!--  #################   Define Functions ####################### -->
    <xsd:element name="functions">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="function" minOccurs="1" maxOccurs="unbounded"
                             type="functionType" />
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="functionType">
        <xsd:sequence>
            <!-- function name -->
            <xsd:element name="name" nillable="false" type="xsd:string" />
            <!-- function database -->
            <xsd:element name="database" nillable="false" type="xsd:string" />
        </xsd:sequence>
        <xsd:attribute name="selection" type="selection" use="required" />
    </xsd:complexType>

	<!--
		Define table with sql select statement with a WHERE clause for partial
		table copy
	-->
	<xsd:complexType name="tableType">
		<xsd:sequence>
			<xsd:element name="name" minOccurs="1" maxOccurs="1"
				type="xsd:string" />
			<xsd:element name="owner_name" minOccurs="0" maxOccurs="1"
				type="xsd:string" />
				
		    <xsd:element name="db_client_encryption" minOccurs="0" type="triStateType" default="unspecified"/>
		    		
			<!-- option to use staging database -->			
			<xsd:element name="use_source_staging_table" minOccurs="0"
				maxOccurs="1" type="booleanType" default="false" />		
            <xsd:element name="source_staging_database" type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
			<!-- target_staging_database new tag used to replace staging_database -->
			<xsd:element name="target_staging_database" type="targetDatabaseType"  minOccurs="0" maxOccurs="1" />

			<xsd:element name="staging_database"
				type="targetDatabaseType" minOccurs="0" maxOccurs="1" /> 			
			<xsd:element name="staging_database_for_table"
				type="targetDatabaseType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="force_target_staging_table"
				type="booleanType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="target_database"
				type="targetDatabaseType" maxOccurs="1" minOccurs="0" />
			<xsd:element name="target_name" type="xsd:string"
				maxOccurs="1" minOccurs="0">
			</xsd:element>
			<!-- Aster specific parameters -->
			<xsd:element name="aster_table_params" minOccurs="0" maxOccurs="1" type="asterTableParamsType" />
			<!--  validate row count -->
			<xsd:element name="validate_row_count" minOccurs="0"
				maxOccurs="1" type="RowCountValidationType" default="none" />
			<!-- option to override lock access -->
			<xsd:element name="override_lock_access" minOccurs="0"
				maxOccurs="1" type="booleanType" default="false" />
			<!-- use export without spool feature when using TPTAPI -->
			<xsd:element name="export_without_spool" minOccurs="0"
				maxOccurs="1" type="triStateType" default="unspecified" />
			<!--  compare DDL of the source table with the target table -->
			<xsd:element name="compare_ddl" minOccurs="0" maxOccurs="1"
				type="triStateType" default="unspecified" />
			<xsd:element name="map" minOccurs="0" maxOccurs="1"  type="xsd:string" />
    		<xsd:element name="colocate" minOccurs="0" maxOccurs="1"  type="xsd:string" />
			<!--  compare journaling forward if table uses journaling -->	
			<xsd:element name="journaling" minOccurs="0" maxOccurs="1"
				type="triStateType" default="unspecified" />
			<!-- partial table copy -->
			<xsd:element name="sql_where_clause" minOccurs="0"
				maxOccurs="1" type="xsd:string" />
			<xsd:element ref="key_columns" minOccurs="0" maxOccurs="1" />
			<xsd:element name="staging_to_target"
				type="StagingToTargetType" maxOccurs="1" minOccurs="0"/>
			<xsd:element name="table_columns"
				type="tableColumnsType" minOccurs="0" maxOccurs="1" />
		</xsd:sequence>
		<xsd:attribute name="copyStats" type="booleanType" use="optional"/>
		<xsd:attribute name="selection" type="selection" use="required" />
		<xsd:attribute name="allowTptLoadForMultiset" type="booleanType" default="false" use="optional" />
	</xsd:complexType>

<!--  Aster Table parameters -->
	<xsd:complexType name="asterTableParamsType">
		<xsd:sequence>
			<xsd:element name="source_schema_name" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="target_schema_name" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="target_table_type" minOccurs="0" maxOccurs="1" type="asterTableType"/>
			<xsd:element name="target_table_distribution_type" minOccurs="0" maxOccurs="1" type="asterTableDistributionType"/>
			<xsd:element name="target_table_distribution_key_column" minOccurs="0" maxOccurs="1" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
<!--  The target table (aster) should be either FACT or DIMENSION, by default it's FACT table. -->
	<xsd:simpleType name="asterTableType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Ff][Aa][Cc][Tt]|[Dd][Ii][Mm][Ee][Nn][Ss][Ii][Oo][Nn]"/>
		</xsd:restriction>
	</xsd:simpleType>
<!--  The target table (aster) distribution type should be either HASH or REPLICATION, FACT table should be HASH and DIMENSION table can be either. -->
	<xsd:simpleType name="asterTableDistributionType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Dd][Ii][Ss][Tt][Rr][Ii][Bb][Uu][Tt][Ee][_][Bb][Yy][_][Hh][Aa][Ss][Hh]|[Dd][Ii][Ss][Tt][Rr][Ii][Bb][Uu][Tt][Ee][_][Bb][Yy][_][Rr][Ee][Pp][Ll][Ii][Cc][Aa][Tt][Ii][Oo][Nn]" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<!--  Define key_columns -->
	<xsd:element name="key_columns">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="key_column" minOccurs="1" maxOccurs="unbounded"
					type="xsd:string" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:simpleType name="charsetType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ASCII" />
			<xsd:enumeration value="UTF8" />
			<xsd:enumeration value="UTF16" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<!-- Basic information about a job -->
	<xsd:simpleType name="jobCopyType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="master" />
			<xsd:enumeration value="instance" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="simpleJobType">
		<xsd:sequence>
			<!-- job name -->
			<xsd:element name="name" type="xsd:string" />
			<!-- Job Cleanup status and results -->
			<xsd:element name="cleanupPerformed"
							type="xsd:boolean"  maxOccurs="1" minOccurs="0"/>
			<xsd:element name="cleanup_message" type="xsd:string" minOccurs="0" />
			<xsd:element name="cleanup_result" type="xsd:string"
							maxOccurs="unbounded" minOccurs="0" />
		</xsd:sequence>
		<!-- master copy or instance copy -->
		<xsd:attribute name="copy" type="jobCopyType"
			use="required" />
	</xsd:complexType>

	<xsd:complexType name="targetDatabaseType">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="useForeignServerType">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element>
		</xsd:sequence>
		<xsd:attribute name="foreignServerOnTarget" type="triStateType" default="unspecified" use="optional"/>
	</xsd:complexType>

	<xsd:element name="dmCompareDDLTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
						<xsd:element name="source_tdpid"
							type="xsd:string" />
						<xsd:element name="source_username"
							type="xsd:string" />
						<xsd:element name="source_logon_mech"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="source_logon_mech_data"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="source_account_id"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_tdpid"
							type="xsd:string" />
						<xsd:element name="target_username"
							type="xsd:string" />
						<xsd:element name="target_logon_mech"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_logon_mech_data"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_account_id"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="useBaseViews"
							type="xsd:boolean" />
						<xsd:element name="performance_report_rate"
							type="xsd:int" default="0" />
						<xsd:element name="session_charset"
							type="xsd:string" maxOccurs="1" minOccurs="0">
						</xsd:element>
                        <xsd:element name="jobTask" type="jobTaskType">
						</xsd:element>
                        <xsd:element name="compare_ddl_tables"
							type="compareDDLTableType" maxOccurs="unbounded" minOccurs="1" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />							
						<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />
						<xsd:element name="source_jdbc_connection_string"
									 type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_jdbc_connection_string"
									 type="xsd:string" maxOccurs="1" minOccurs="0"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmAsterCompareDDLTask">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmAgentCommandBase">
					<xsd:sequence>
					
						<xsd:element name="source_db_type" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_db_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="source_db_port" minOccurs="0"
							type="xsd:string" />	
							
						<xsd:element name="source_tdpid"
							type="xsd:string"  maxOccurs="1" minOccurs="0"/>
						<xsd:element name="source_username"
							type="xsd:string" />
						<xsd:element name="source_logon_mech"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="source_logon_mech_data"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="source_account_id"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
							
						
						<xsd:element name="target_db_type" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_db_name" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="target_db_port" minOccurs="0"
							type="xsd:string" />	
						
							
						<xsd:element name="target_tdpid"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_username"
							type="xsd:string" />
						<xsd:element name="target_logon_mech"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_logon_mech_data"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="target_account_id"
							type="xsd:string" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="useBaseViews"
							type="xsd:boolean" maxOccurs="1" minOccurs="0"/>
						<xsd:element name="performance_report_rate"
							type="xsd:int" default="0" />
						<xsd:element name="session_charset"
							type="xsd:string" maxOccurs="1" minOccurs="0">
						</xsd:element>
                        <xsd:element name="jobTask" type="jobTaskType">
						</xsd:element>
                        <xsd:element name="compare_ddl_tables"
							type="asterCompareDDLTableType" maxOccurs="unbounded" minOccurs="1" />
						<xsd:element name="data_encrypted_by_agent" nillable="true"
							maxOccurs="unbounded" type="dmAgentEncryptedBase" />							
						<xsd:element name="source_session_charset" minOccurs="0" type="xsd:string"></xsd:element>
						<xsd:element name="target_session_charset" minOccurs="0" type="xsd:string"></xsd:element>	
						<xsd:element name="compare_ddl"  type="triStateType" default="unspecified" />
						<xsd:element name="database_client_encryption" type="xsd:boolean" default="false" />					
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:complexType name="compareDDLTableType">
		<xsd:sequence>
			<xsd:element name="src_name" type="xsd:string"></xsd:element>
			<xsd:element name="src_database" type="xsd:string"></xsd:element>
			<xsd:element name="target_name" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
			<xsd:element name="target_database" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
			<xsd:element name="selected" type="xsd:boolean"></xsd:element>
			<xsd:element name="objectType" type="xsd:string"></xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="asterCompareDDLTableType">
		<xsd:sequence>
			<xsd:element name="selection" type="xsd:boolean" />
			<xsd:element name="src_name" type="xsd:string" />
			<xsd:element name="src_schema" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="src_database" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="target_name" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="target_schema" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="target_database" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="exists_on_target" type="xsd:boolean" />
			<xsd:element name="compare_ddl"  type="triStateType" default="unspecified" />
			<xsd:element name="table_columns"
				type="tableColumnsType" minOccurs="0" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="dmAgentEncryptedBase">
		<xsd:sequence>
			<xsd:element name="agent_public_key" minOccurs="1"
				maxOccurs="1" type="xsd:string" />
			<xsd:element name="encrypted_symmetric_key" minOccurs="1"
				maxOccurs="1" type="xsd:string" />	
		</xsd:sequence>
	</xsd:complexType>

	<!--
		Data Encrypted by Agent public key, source and target password are required
	-->
	<xsd:complexType name="dmAgentEncryptedTPTJDBCTask">
		<xsd:complexContent>
			<xsd:extension base="dmAgentEncryptedBase">
				<xsd:sequence>
					<xsd:element name="source_password_encrypted"
						minOccurs="1" type="xsd:string" />
					<xsd:element name="target_password_encrypted"
						minOccurs="1" type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!-- Data Encrypted by Agent public key, target password is optional -->
	<xsd:complexType name="dmAgentEncryptedSQLTask">
		<xsd:complexContent>
			<xsd:extension base="dmAgentEncryptedBase">
				<xsd:sequence>
					<xsd:element name="target_password_encrypted"
						minOccurs="0" type="xsd:string" />
					<xsd:element name="source_password_encrypted"
						minOccurs="0" type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<!-- Data Encrypted by Agent public key, target password is optional -->
	<xsd:complexType name="dmAgentEncryptedAsterMRTask">
		<xsd:complexContent>
			<xsd:extension base="dmAgentEncryptedBase">
				<xsd:sequence>
					<xsd:element name="source_password_encrypted"
						minOccurs="0" type="xsd:string" />
					<xsd:element name="target_password_encrypted"
						minOccurs="0" type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!--
		Data Encrypted by Agent public key, source and target password are optional
	-->
	<xsd:complexType name="dmAgentEncryptedCompareDDLTask">
		<xsd:complexContent>
			<xsd:extension base="dmAgentEncryptedBase">
				<xsd:sequence>
					<xsd:element name="source_password_encrypted"
						minOccurs="0" type="xsd:string" />
					<xsd:element name="target_password_encrypted"
						minOccurs="0" type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<!-- dmModifyAdminPassword -->
	<xsd:element name="dmModifyAdminPassword">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="current_password" minOccurs="0" 
							type="xsd:string" />
						<xsd:element name="current_password_encrypted"
							minOccurs="0" type="xsd:string" />
						<xsd:element name="new_password" minOccurs="0"
							type="xsd:string" />
						<xsd:element name="new_password_encrypted"
							minOccurs="0" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmModifyAdminPasswordOutput -->
	<xsd:element name="dmModifyAdminPasswordOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmCheckSecurityType -->
	<xsd:complexType name="dmCheckSecurityType">
		<xsd:sequence>
			<xsd:element name="security_username" minOccurs="0" type="xsd:string" />
			<xsd:element name="security_password" minOccurs="0" type="xsd:string" />
			<xsd:element name="security_password_encrypted" minOccurs="0" type="xsd:string" />
			<xsd:element name="security_role" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
			<xsd:element name="security_portlet_token" minOccurs="0" type="xsd:string" />
			<xsd:element name="security_jwt" minOccurs="0" maxOccurs="1" type="dmJWTDataType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="dmJWTDataType">
		<xsd:sequence>
			<xsd:element name="jwt" type="xsd:string" minOccurs="1" maxOccurs="1" />
			<xsd:element name="encrypted_symmetric_key" type="xsd:string" minOccurs="1" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:element name="dmJobListUpdateAnnouncement">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmMessageBase">
					<xsd:sequence>
						<xsd:element name="timestamp" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmJobDefinitionUpdateAnnouncement">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmMessageBase">
					<xsd:sequence>
						<xsd:element name="jobName" minOccurs="1" type="xsd:string"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmJobStatusUpdateAnnouncement">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmMessageBase">
					<xsd:sequence>
						<xsd:element name="jobName" minOccurs="1" type="xsd:string"/>
						<xsd:element name="jobComplete" minOccurs="1" type="xsd:boolean"/>
						<xsd:element name="blockedJobStarted" minOccurs="1" type="xsd:boolean"/>
						<xsd:element name="objectName" minOccurs="0" type="xsd:string"/>
						<xsd:element name="totalBytesProcessed" minOccurs="0" type="xsd:long"/>
			            <xsd:element name="jobExecution" type="jobExecutionType" maxOccurs="1" minOccurs="0"/>	
			        </xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmEditJob, edit command used by portlet  -->
	<xsd:element name="dmEditJob">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="jobDefinitionType">	
					<xsd:sequence>
						<xsd:element name="variableChanged" type="jobVariablesChangeType"
							minOccurs="0"  maxOccurs="1" />							
						<xsd:element name="job_security" minOccurs="0" type="securityType" />				
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- dmEditJobOutput -->
	<xsd:element name="dmEditJobOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmEdit, edit command used by commandline, all the fields are optional -->
	<xsd:element name="dmEdit">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="changedJobDefinitionType">	
					<xsd:sequence>
						<xsd:element name="job_security" minOccurs="0" type="securityType" />	
					</xsd:sequence>		
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<!-- dmEditOutput -->
	<xsd:element name="dmEditOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!-- Get Daemon Current Time-->
	<xsd:element name="dmDaemonTime">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="response_timeout" minOccurs="0"
						type="xsd:int" default="10" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmDaemonTimeOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="daemon_time" type="xsd:dateTime"
							minOccurs="1" maxOccurs="1" />
							<xsd:element name="daemon_time_zone_label" type="xsd:string"
							minOccurs="1" maxOccurs="1" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	
	<xsd:element name="dmDaemonPingError">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmPingPortlet">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="dmPortletDataTransferMessage">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmMessageBase">
					<xsd:sequence>
						<xsd:element name="upgradeVersion" type="xsd:string" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmPortletDataTransferResult">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="upgradeVersion" type="xsd:string" />
						<xsd:element name="portletDataTrasfer" type="dmPortletDaemonDataUpgradeInfo" minOccurs="0"
						maxOccurs="unbounded" />
					</xsd:sequence>
					
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="dmPortletDaemonDataUpgradeInfo">
		<xsd:sequence>
			<xsd:element name="nick" type="xsd:string" />
			<xsd:element name="code" type="xsd:string" />
			<xsd:element name="data" type="xsd:string"
							minOccurs="0" maxOccurs="unbounded" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="dmUpdateJobPriorities">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmCommandBase">
					<xsd:sequence>
						<xsd:element name="job_priority_set" minOccurs="1" maxOccurs="unbounded" type="updateJobPriorityType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="dmUpdateJobPrioritiesOutput">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="dmOutputBase">
					<xsd:sequence>
						<xsd:element name="success_list" minOccurs="1" maxOccurs="1" type="jobListType" />
						<xsd:element name="failed_list" minOccurs="1" maxOccurs="1" type="jobListWithReasonType" />
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:complexType name="updateJobPriorityType">
		<xsd:sequence>
			<xsd:element name="job_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="job_priority" minOccurs="1" maxOccurs="1" type="jobPriorityType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="jobListType">
		<xsd:sequence>
			<xsd:element name="job_name" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="jobListWithReasonType">
		<xsd:sequence>
			<xsd:element name="failed_job" minOccurs="0" maxOccurs="unbounded" type="failedJobType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="failedJobType">
		<xsd:sequence>
			<xsd:element name="job_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="failed_reason" minOccurs="1" maxOccurs="1" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="logonMechanismType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="default" />
			<xsd:enumeration value="kerberos" />
		</xsd:restriction>
	</xsd:simpleType>

	<!-- Aster system details -->
	<xsd:complexType name="asterSystemType">
		<xsd:sequence>
			<xsd:element name="system_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="port" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="user_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="password" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="password_encrypted" minOccurs="0" maxOccurs="1" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	
		
	<!-- asterDefinitionType # Aster Job, list of parameters required for Aster specific job -->
	<xsd:complexType name="asterOptionType">
		<xsd:sequence>	
			<xsd:element name="query_timeout" minOccurs="0" maxOccurs="1" type="xsd:int" />
			<xsd:element name="preserve_column_case" minOccurs="0" maxOccurs="1" type="enabledFlag" />
			<xsd:element name="skip_error_records" minOccurs="0" maxOccurs="1" type="enabledFlag" />
		</xsd:sequence>
	</xsd:complexType>

    <xsd:complexType name="dsaOptionsType">
        <xsd:sequence>  
            <xsd:element name="target_group_name" minOccurs="0" maxOccurs="1" type="xsd:string" />
            <xsd:element name="parallel_builds" minOccurs="0" maxOccurs="1" type="xsd:int" default="5" />
			<xsd:element name="ir_allow_write" minOccurs="0" maxOccurs="1" type="triStateType" default="unspecified" />
			<xsd:element name="ir_execution_type" minOccurs="0" maxOccurs="1" type="irExecutionType" default="unspecified"/>
        </xsd:sequence>
    </xsd:complexType>

	<xsd:simpleType name="irExecutionType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Ff][Uu][Ll][Ll]|[Uu][Nn][Ss][Pp][Ee][Cc][Ii][Ff][Ii][Ee][Dd]"/>
		</xsd:restriction>
	</xsd:simpleType>

  	<xsd:complexType name="tableColumnsType">
		<xsd:sequence>								
            <xsd:element name="column" minOccurs="1" maxOccurs="unbounded" type="tableColumnType" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="tableColumnType">
		<xsd:sequence>								
			<xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="target_name" minOccurs="0" maxOccurs="1" type="xsd:string" />		
			<xsd:element name="type" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="target_type" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="size" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="charset" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="allowNull" minOccurs="0" maxOccurs="1" type="triStateType" default="unspecified" />
			<xsd:element name="allowDuplicate" minOccurs="0" maxOccurs="1" type="triStateType" default="unspecified" />
			<xsd:element name="isPrimaryIndex" minOccurs="0" maxOccurs="1" type="triStateType" default="unspecified" />
		</xsd:sequence>
	</xsd:complexType>
	
	<!--
		Define StatsTask, which holds stats metadata (job_task_stats metadata table) for Multi Column stats, Column stats and Index stats.
	-->
	<xsd:complexType name="statsTaskType">
		<xsd:sequence>
			<xsd:element name="table_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="owner_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="target_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="target_owner_name" minOccurs="1" maxOccurs="1" type="xsd:string" />
			<xsd:element name="stats_type" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="stats_id" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="index_name" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="index_type" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="unique_flag" minOccurs="0" maxOccurs="1" type="xsd:boolean" />
			<xsd:element name="column_name" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="column_type" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="column_format" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="column_length" minOccurs="0" maxOccurs="1" type="xsd:string" />
			<xsd:element name="decimal_total_digits" minOccurs="0" maxOccurs="1" type="xsd:int" />
			<xsd:element name="decimal_fractional_digits" minOccurs="0" maxOccurs="1" type="xsd:int" />
		</xsd:sequence>
	</xsd:complexType>

    <xsd:complexType name="s3PropertiesType">
        <xsd:sequence>
            <xsd:element name="access_key_id" minOccurs="1" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="secret_access_key" minOccurs="0" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="secret_access_key_encrypted" minOccurs="0" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="buckets_by_regions" minOccurs="1" maxOccurs="1" type="bucketsByRegionsType" />
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="bucketsByRegionsType">
        <xsd:sequence>
            <xsd:element name="buckets_by_region" minOccurs="1" maxOccurs="unbounded" type="bucketsByRegionType"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="bucketsByRegionType">
        <xsd:sequence>
            <xsd:element name="region" minOccurs="1" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="buckets" minOccurs="1" maxOccurs="1">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="bucket" minOccurs="1" maxOccurs="unbounded" type="cloudStagingBucketType" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="cloudStagingBucketType">
        <xsd:sequence>
            <xsd:element name="bucket_name" minOccurs="1" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="prefix_list" minOccurs="1" maxOccurs="1" type="prefixListType"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="prefixListType">
        <xsd:sequence>
            <xsd:element name="prefix" minOccurs="1" maxOccurs="unbounded" type="prefixType"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="prefixType">
        <xsd:sequence>
            <xsd:element name="prefix_name" minOccurs="1" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="storage_devices" minOccurs="1" maxOccurs="1" type="xsd:long"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="sourceTargetPairType">
        <xsd:sequence>
            <xsd:element name="source_system"               minOccurs="1" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="source_system_target_group"  minOccurs="0" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="target_system"               minOccurs="1" maxOccurs="1" type="xsd:string"/>
            <xsd:element name="target_system_target_group"  minOccurs="0" maxOccurs="1" type="xsd:string" />
            <xsd:element name="valid"  minOccurs="0" maxOccurs="1" type="xsd:boolean" />
            <xsd:element name="note"  minOccurs="0" maxOccurs="1" type="xsd:string" />
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="cloudStagingType">
        <xsd:complexContent>
            <!-- This extension contains the required security content defined in the common section of the document -->
            <xsd:extension base="dmCommandBase">
                <xsd:sequence>
                    <xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string"/>
                    <xsd:element name="storage_type" minOccurs="1" maxOccurs="1" type="xsd:string" default="S3" />
                    <xsd:element name="s3_properties" minOccurs="0" maxOccurs="1" type="s3PropertiesType" />
                    <xsd:element name="source_target_pairs" minOccurs="1" maxOccurs="1">
                        <xsd:complexType>
                            <xsd:sequence>
                                <xsd:element name="source_target_pair" minOccurs="1" maxOccurs="unbounded" type="sourceTargetPairType" />
                            </xsd:sequence>
                        </xsd:complexType>
                    </xsd:element>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="dmCreateCloudStaging">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="cloudStagingType" />
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="dmEditCloudStaging">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="cloudStagingType" />
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="deleteCloudStagingType">
        <xsd:complexContent>
            <xsd:extension base="dmCommandBase">
                <xsd:sequence>
                    <xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="dmDeleteCloudStaging">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="deleteCloudStagingType" />
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="listCloudStagingAreasType">
        <xsd:complexContent>
            <xsd:extension base="dmCommandBase" />
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="dmListCloudStagingAreas">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="listCloudStagingAreasType" />
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="getCloudStagingAreaType">
        <xsd:complexContent>
            <!-- This extension contains the required security content defined in the common section of the document -->
            <xsd:extension base="dmCommandBase">
                <xsd:sequence>
                    <xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string"/>
                    <xsd:element name="filename" minOccurs="0" maxOccurs="1" type="xsd:string"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="dmGetCloudStagingArea">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="getCloudStagingAreaType" />
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="dmCloudStagingOutput">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="dmOutputBase">
                    <xsd:sequence>
                        <xsd:element name="httpStatusCode" nillable="false" type="xsd:int"/>
                        <xsd:element name="requestOutput" nillable="false" type="xsd:string" />
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>