View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.lum.lu.service;
17  
18  import java.util.Date;
19  import java.util.List;
20  
21  import javax.jws.WebParam;
22  import javax.jws.WebService;
23  import javax.jws.soap.SOAPBinding;
24  
25  import org.kuali.student.common.dictionary.service.DictionaryService;
26  import org.kuali.student.common.dto.StatusInfo;
27  import org.kuali.student.common.exceptions.AlreadyExistsException;
28  import org.kuali.student.common.exceptions.CircularRelationshipException;
29  import org.kuali.student.common.exceptions.DataValidationErrorException;
30  import org.kuali.student.common.exceptions.DependentObjectsExistException;
31  import org.kuali.student.common.exceptions.DoesNotExistException;
32  import org.kuali.student.common.exceptions.IllegalVersionSequencingException;
33  import org.kuali.student.common.exceptions.InvalidParameterException;
34  import org.kuali.student.common.exceptions.MissingParameterException;
35  import org.kuali.student.common.exceptions.OperationFailedException;
36  import org.kuali.student.common.exceptions.PermissionDeniedException;
37  import org.kuali.student.common.exceptions.UnsupportedActionException;
38  import org.kuali.student.common.exceptions.VersionMismatchException;
39  import org.kuali.student.common.search.service.SearchService;
40  import org.kuali.student.common.validation.dto.ValidationResultInfo;
41  import org.kuali.student.common.versionmanagement.service.VersionManagementService;
42  import org.kuali.student.lum.lu.dto.CluCluRelationInfo;
43  import org.kuali.student.lum.lu.dto.CluInfo;
44  import org.kuali.student.lum.lu.dto.CluLoRelationInfo;
45  import org.kuali.student.lum.lu.dto.CluLoRelationTypeInfo;
46  import org.kuali.student.lum.lu.dto.CluPublicationInfo;
47  import org.kuali.student.lum.lu.dto.CluResultInfo;
48  import org.kuali.student.lum.lu.dto.CluResultTypeInfo;
49  import org.kuali.student.lum.lu.dto.CluSetInfo;
50  import org.kuali.student.lum.lu.dto.CluSetTreeViewInfo;
51  import org.kuali.student.lum.lu.dto.CluSetTypeInfo;
52  import org.kuali.student.lum.lu.dto.DeliveryMethodTypeInfo;
53  import org.kuali.student.lum.lu.dto.InstructionalFormatTypeInfo;
54  import org.kuali.student.lum.lu.dto.LuCodeTypeInfo;
55  import org.kuali.student.lum.lu.dto.LuLuRelationTypeInfo;
56  import org.kuali.student.lum.lu.dto.LuPublicationTypeInfo;
57  import org.kuali.student.lum.lu.dto.LuTypeInfo;
58  import org.kuali.student.lum.lu.dto.LuiInfo;
59  import org.kuali.student.lum.lu.dto.LuiLuiRelationInfo;
60  import org.kuali.student.lum.lu.dto.ResultUsageTypeInfo;
61  
62  
63  /**
64   *
65   * @Author KSContractMojo
66   * @Author Kamal
67   * @Since Mon Jan 11 15:18:59 PST 2010
68   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/LU+Service+v1.0-rc4">LUService</>
69   *
70   */
71  @WebService(name = "LuService", targetNamespace = LuServiceConstants.LU_NAMESPACE)
72  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
73  public interface LuService extends DictionaryService, SearchService, VersionManagementService { 
74  
75  	/** 
76       * Retrieves the list of delivery method types
77       * @return list of delivery method type information
78       * @throws OperationFailedException unable to complete request
79  	 */
80      public List<DeliveryMethodTypeInfo> getDeliveryMethodTypes() throws OperationFailedException;
81  
82      /** 
83       * Retrieves information about a delivery method type
84       * @param deliveryMethodTypeKey Key of the Delivery Method Type
85       * @return information about a Delivery Method Type
86       * @throws DoesNotExistException deliveryMethodType not found
87       * @throws InvalidParameterException invalid deliveryMethodType
88       * @throws MissingParameterException missing deliveryMethodType
89       * @throws OperationFailedException unable to complete request
90  	 */
91      public DeliveryMethodTypeInfo getDeliveryMethodType(@WebParam(name="deliveryMethodTypeKey")String deliveryMethodTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
92  
93      /** 
94       * Retrieves the list of instructional format types
95       * @return list of instructional format type information
96       * @throws OperationFailedException unable to complete request
97  	 */
98      public List<InstructionalFormatTypeInfo> getInstructionalFormatTypes() throws OperationFailedException;
99  
100     /** 
101      * Retrieves information about a Instructional Format Type
102      * @param instructionalFormatTypeKey Key of the Instructional Format Type
103      * @return information about a Instructional Format Type
104      * @throws DoesNotExistException instructionalFormatType not found
105      * @throws InvalidParameterException invalid instructionalFormatType
106      * @throws MissingParameterException missing instructionalFormatType
107      * @throws OperationFailedException unable to complete request
108 	 */
109     public InstructionalFormatTypeInfo getInstructionalFormatType(@WebParam(name="instructionalFormatTypeKey")String instructionalFormatTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
110 
111     /** 
112      * Retrieves the list of LU types
113      * @return list of LU type information
114      * @throws OperationFailedException unable to complete request
115 	 */
116     public List<LuTypeInfo> getLuTypes() throws OperationFailedException;
117 
118     /** 
119      * Retrieves information about a LU Type
120      * @param luTypeKey Key of the LU Type
121      * @return information about a LU Type
122      * @throws DoesNotExistException luType not found
123      * @throws InvalidParameterException invalid luType
124      * @throws MissingParameterException missing luType
125      * @throws OperationFailedException unable to complete request
126 	 */
127     public LuTypeInfo getLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
128 
129     /** 
130      * Retrieves the list of learning unit code types
131      * @return list of lu code type information
132      * @throws OperationFailedException unable to complete request
133 	 */
134     public List<LuCodeTypeInfo> getLuCodeTypes() throws OperationFailedException;
135 
136     /** 
137      * Retrieves information about a learning unit code type
138      * @param luCodeTypeKey Key of the learning unit code type
139      * @return information about a learning unit code type
140      * @throws DoesNotExistException luCodeTypeKey not found
141      * @throws InvalidParameterException invalid luCodeTypeKey
142      * @throws MissingParameterException missing luCodeTypeKey
143      * @throws OperationFailedException unable to complete request
144 	 */
145     public LuCodeTypeInfo getLuCodeType(@WebParam(name="luCodeTypeKey")String luCodeTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
146 
147     /** 
148      * Retrieves the complete list of LU to LU relation types
149      * @return list of LU to LU relation type information
150      * @throws OperationFailedException unable to complete request
151 	 */
152     public List<LuLuRelationTypeInfo> getLuLuRelationTypes() throws OperationFailedException;
153 
154     /** 
155      * Retrieves the LU to LU relation type
156      * @param luLuRelationTypeKey Key of the LU to LU Relation Type
157      * @return LU to LU relation type information
158      * @throws OperationFailedException unable to complete request
159      * @throws MissingParameterException missing luLuRelationTypeKey
160      * @throws DoesNotExistException luLuRelationTypeKey not found
161 	 */
162     public LuLuRelationTypeInfo getLuLuRelationType(@WebParam(name="luLuRelationTypeKey")String luLuRelationTypeKey) throws OperationFailedException, MissingParameterException, DoesNotExistException;
163 
164     /** 
165      * Retrieves the list of allowed relation types between the two specified LU Types
166      * @param luTypeKey Key of the first LU Type
167      * @param relatedLuTypeKey Key of the second LU Type
168      * @return list of LU to LU relation types
169      * @throws DoesNotExistException luTypeKey, relatedLuTypeKey not found
170      * @throws InvalidParameterException invalid luTypeKey, relatedLuTypeKey
171      * @throws MissingParameterException missing luTypeKey, relatedLuTypeKey
172      * @throws OperationFailedException unable to complete request
173 	 */
174     public List<String> getAllowedLuLuRelationTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="relatedLuTypeKey")String relatedLuTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
175 
176     /** 
177      * Retrieves the list of Learning Unit publication types
178      * @return list of Learning Unit publication type information
179      * @throws OperationFailedException unable to complete request
180 	 */
181     public List<LuPublicationTypeInfo> getLuPublicationTypes() throws OperationFailedException;
182 
183     /** 
184      * Retrieves information about a publication type
185      * @param luPublicationTypeKey Key of the Learning Unit Publication Type
186      * @return information about a Learning Unit Publication Type
187      * @throws DoesNotExistException luPublicationType not found
188      * @throws InvalidParameterException invalid luPublicationType
189      * @throws MissingParameterException missing luPublicationType
190      * @throws OperationFailedException unable to complete request
191 	 */
192     public LuPublicationTypeInfo getLuPublicationType(@WebParam(name="luPublicationTypeKey")String luPublicationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
193 
194     /** 
195      * Retrieves information about a publication type
196      * @param luTypeKey Key of the LU Type
197      * @return list of LU publication types
198      * @throws DoesNotExistException luPublicationType not found
199      * @throws InvalidParameterException invalid luPublicationType
200      * @throws MissingParameterException missing luPublicationType
201      * @throws OperationFailedException unable to complete request
202 	 */
203     public List<String> getLuPublicationTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
204         
205     /** 
206      * Retrieves a list of types for clu result objects.
207      * @return list of clu result type information
208      * @throws OperationFailedException unable to complete request
209 	 */
210     public List<CluResultTypeInfo> getCluResultTypes() throws OperationFailedException;
211 
212     /** 
213      * Retrieves information about a publication type
214      * @param cluResultTypeKey Key of the Canonical Learning Unit Result Type
215      * @return information about a Learning Unit Publication Type
216      * @throws DoesNotExistException luPublicationType not found
217      * @throws InvalidParameterException invalid luPublicationType
218      * @throws MissingParameterException missing luPublicationType
219      * @throws OperationFailedException unable to complete request
220 	 */
221     public CluResultTypeInfo getCluResultType(@WebParam(name="cluResultTypeKey")String cluResultTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
222         
223     /** 
224      * Retrieves the list of clu result types which are allowed to be used in conjunction with a particular lu type.
225      * @param luTypeKey luTypeKey
226      * @return list of clu result types
227      * @throws DoesNotExistException luTypeKey not found
228      * @throws InvalidParameterException invalid luTypeKey
229      * @throws MissingParameterException missing luTypeKey
230      * @throws OperationFailedException unable to complete request
231 	 */
232     public List<CluResultTypeInfo> getCluResultTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
233 
234     /** 
235      * Retrieves a list of result usage types
236      * @return list of result usage type information
237      * @throws OperationFailedException unable to complete request
238 	 */
239     public List<ResultUsageTypeInfo> getResultUsageTypes() throws OperationFailedException;
240 
241     /** 
242      * Retrieves information about a Result Usage Type
243      * @param resultUsageTypeKey Key of the Result Usage Type
244      * @return information about a Result Usage Type
245      * @throws DoesNotExistException resultUsageTypeKey not found
246      * @throws InvalidParameterException invalid resultUsageTypeKey
247      * @throws MissingParameterException missing resultUsageTypeKey
248      * @throws OperationFailedException unable to complete request
249 	 */
250     public ResultUsageTypeInfo getResultUsageType(@WebParam(name="resultUsageTypeKey")String resultUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
251 
252     /** 
253      * Retrieves the list of result usage types which are allowed to be used in conjunction with an lu type.
254      * @param luTypeKey luTypeKey
255      * @return list of result usage types
256      * @throws DoesNotExistException luTypeKey not found
257      * @throws InvalidParameterException invalid luTypeKey
258      * @throws MissingParameterException missing luTypeKey
259      * @throws OperationFailedException unable to complete request
260 	 */
261     public List<String> getAllowedResultUsageTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
262 
263     /** 
264      * Retrieves the list of result component types which are allowed to be used in conjunction with result usage type.
265      * @param resultUsageTypeKey resultUsageTypeKey
266      * @return list of result component types
267      * @throws DoesNotExistException resultUsageTypeKey not found
268      * @throws InvalidParameterException invalid resultUsageTypeKey
269      * @throws MissingParameterException missing resultUsageTypeKey
270      * @throws OperationFailedException unable to complete request
271 	 */
272     public List<String> getAllowedResultComponentTypesForResultUsageType(@WebParam(name="resultUsageTypeKey")String resultUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
273 
274     /** 
275      * Retrieves the complete list of CLU to LO relation types
276      * @return list of CLU to LO relation type information
277      * @throws OperationFailedException unable to complete request
278 	 */
279     public List<CluLoRelationTypeInfo> getCluLoRelationTypes() throws OperationFailedException;
280 
281     /** 
282      * Retrieves information for a specified CLU to LO relation type
283      * @param cluLoRelationTypeKey Key of the CLU to LO Relation Type
284      * @return CLU to LO relation type information
285      * @throws DoesNotExistException cluLoRelationTypeKey not found
286      * @throws InvalidParameterException invalid cluLoRelationTypeKey
287      * @throws MissingParameterException missing cluLoRelationTypeKey
288      * @throws OperationFailedException unable to complete request
289 	 */
290     public CluLoRelationTypeInfo getCluLoRelationType(@WebParam(name="cluLoRelationTypeKey")String cluLoRelationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
291 
292     /** 
293      * Retrieves the list of CLU LO relation types which are allowed to be used in conjunction with an lu type.
294      * @param luTypeKey luTypeKey
295      * @return list of clu lo relation types
296      * @throws DoesNotExistException luTypeKey not found
297      * @throws InvalidParameterException invalid luTypeKey
298      * @throws MissingParameterException missing luTypeKey
299      * @throws OperationFailedException unable to complete request
300 	 */
301     public List<String> getAllowedCluLoRelationTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
302 
303     /** 
304      * Retrieves the list of CLU set types known by the service
305      * @return list of CLU set type information
306      * @throws OperationFailedException unable to complete request
307 	 */
308     public List<CluSetTypeInfo> getCluSetTypes() throws OperationFailedException;
309 
310     /** 
311      * Retrieves information about a specified CLU set type
312      * @param cluSetTypeKey Key of the CLU set type
313      * @return information about a CLU set type
314      * @throws DoesNotExistException cluSetTypeKey not found
315      * @throws InvalidParameterException invalid cluSetTypeKey
316      * @throws MissingParameterException missing cluSetTypeKey
317      * @throws OperationFailedException unable to complete request
318 	 */
319     public CluSetTypeInfo getCluSetType(@WebParam(name="cluSetTypeKey")String cluSetTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
320 
321     /** 
322      * Retrieves core information about a CLU
323      * @param cluId identifier of the CLU
324      * @return information about a CLU
325      * @throws DoesNotExistException cluId not found
326      * @throws InvalidParameterException invalid cluId
327      * @throws MissingParameterException missing cluId
328      * @throws OperationFailedException unable to complete request
329 	 */
330     public CluInfo getClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
331 
332     /** 
333      * Retrieves information about CLUs from a list of ids
334      * @param cluIdList List of CLU identifiers
335      * @return information a list of CLUs
336      * @throws DoesNotExistException One or more cluIds not found
337      * @throws InvalidParameterException One or more invalid cluIds
338      * @throws MissingParameterException missing cluIdList
339      * @throws OperationFailedException unable to complete request
340 	 */
341     public List<CluInfo> getClusByIdList(@WebParam(name="cluIdList")List<String> cluIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
342 
343     /** 
344      * Retrieves the list of CLUs for the specified LU Type and state
345      * @param luTypeKey Type of the CLUs to retrieve
346      * @param luState State of the CLUs to retrieve.
347      * @return list of CLU information
348      * @throws DoesNotExistException luType or luState not found
349      * @throws InvalidParameterException invalid luType or luState
350      * @throws MissingParameterException missing luType or luState
351      * @throws OperationFailedException unable to complete request
352 	 */
353     public List<CluInfo> getClusByLuType(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="luState")String luState) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
354 
355     /** 
356      * Retrieves the list of CLU ids for the specified LU Type and state
357      * @param luTypeKey Type of the CLUs whose identifiers should be retrieved
358      * @param luState State of the CLUs whose identifiers should be retrieved
359      * @return list of CLU identifiers
360      * @throws DoesNotExistException luType or luState not found
361      * @throws InvalidParameterException invalid luType or luState
362      * @throws MissingParameterException missing luType or luState
363      * @throws OperationFailedException unable to complete request
364 	 */
365     public List<String> getCluIdsByLuType(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="luState")String luState) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
366 
367     /** 
368      * Retrieves the list of allowed relation types between the two specified CLUs
369      * @param cluId identifier of the first CLU
370      * @param relatedCluId identifier of the second CLU
371      * @return list of LU to LU relation types
372      * @throws DoesNotExistException clu, relatedClu not found
373      * @throws InvalidParameterException invalid cluId, relatedCluId
374      * @throws MissingParameterException missing cluId, relatedCluId
375      * @throws OperationFailedException unable to complete request
376 	 */
377     public List<String> getAllowedLuLuRelationTypesByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="relatedCluId")String relatedCluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
378 
379     /** 
380      * Retrieves the list of CLU information for the CLUs related to a specified CLU Id with a certain LU to LU relation type (getRelatedClusByCluId from the other direction)
381      * @param relatedCluId identifier of the child or To CLU
382      * @param luLuRelationType the LU to LU relation type
383      * @return list of CLU information
384      * @throws DoesNotExistException relatedCluId, luLuRelationType not found
385      * @throws InvalidParameterException invalid relatedCluId, luLuRelationType
386      * @throws MissingParameterException missing relatedCluId, luLuRelationType
387      * @throws OperationFailedException unable to complete request
388 	 */
389     public List<CluInfo> getClusByRelation(@WebParam(name="relatedCluId")String relatedCluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
390 
391     /** 
392      * Retrieves the list of CLU Ids for the specified related CLU Id and LU to LU relation type (getRelatedCluIdsByCluId from the other direction)
393      * @param relatedCluId identifier of the child or To CLU
394      * @param luLuRelationType the LU to LU relation type
395      * @return list of CLU identifiers
396      * @throws DoesNotExistException relatedClu, luLuRelationType not found
397      * @throws InvalidParameterException invalid relatedCluId, luLuRelationType
398      * @throws MissingParameterException missing relatedCluId, luLuRelationType
399      * @throws OperationFailedException unable to complete request
400 	 */
401     public List<String> getCluIdsByRelation(@WebParam(name="relatedCluId")String relatedCluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
402 
403     /** 
404      * Retrieves the list of related CLU information for the specified CLU Id and LU to LU relation type (getClusByRelation from the other direction)
405      * @param cluId identifier of the parent or From CLU
406      * @param luLuRelationType the LU to LU relation type
407      * @return list of CLU information
408      * @throws DoesNotExistException clu, luLuRelationType not found
409      * @throws InvalidParameterException invalid cluId, luLuRelationType
410      * @throws MissingParameterException missing cluId, luLuRelationType
411      * @throws OperationFailedException unable to complete request
412 	 */
413     public List<CluInfo> getRelatedClusByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
414 
415     /** 
416      * Retrieves the list of related CLU Ids for the specified CLU Id and LU to LU relation type (getCluIdsByRelation from the other direction)
417      * @param cluId identifier of the parent or From CLU
418      * @param luLuRelationType the LU to LU relation type
419      * @return list of CLU identifiers
420      * @throws DoesNotExistException clu, luLuRelationType not found
421      * @throws InvalidParameterException invalid cluId, luLuRelationType
422      * @throws MissingParameterException missing cluId, luLuRelationType
423      * @throws OperationFailedException unable to complete request
424 	 */
425     public List<String> getRelatedCluIdsByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
426 
427     /** 
428      * Retrieves the relationship information between CLUs for a particular Relation instance
429      * @param cluCluRelationId identifier of the CLU to CLU relation
430      * @return information on the relation between two CLUs
431      * @throws DoesNotExistException cluCluRelation not found
432      * @throws InvalidParameterException invalid cluCluRelationId
433      * @throws MissingParameterException missing cluCluRelationId
434      * @throws OperationFailedException unable to complete request
435 	 */
436     public CluCluRelationInfo getCluCluRelation(@WebParam(name="cluCluRelationId")String cluCluRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
437 
438     /** 
439      * Retrieves the list of relationship information for the specified CLU
440      * @param cluId identifier of the parent or From CLU
441      * @return list of CLU to CLU relation information
442      * @throws DoesNotExistException clu not found
443      * @throws InvalidParameterException invalid cluId
444      * @throws MissingParameterException missing cluId
445      * @throws OperationFailedException unable to complete request
446 	 */
447     public List<CluCluRelationInfo> getCluCluRelationsByClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
448 
449     /** 
450      * Retrieves a list of publication objects for a particular clu
451      * @param cluId clu identifier
452      * @return list of publication objects used by the specified clu
453      * @throws DoesNotExistException clu not found
454      * @throws InvalidParameterException invalid cluId
455      * @throws MissingParameterException cluId not specified
456      * @throws OperationFailedException unable to complete request
457 	 */
458     public List<CluPublicationInfo> getCluPublicationsByCluId(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
459 
460     /** 
461      * Retrieves a list of publication objects of a particular Type
462      * @param luPublicationTypeKey luPublicationType identifier
463      * @return list of CLU Publication objects using the specified type
464      * @throws DoesNotExistException luPublicationType not found
465      * @throws InvalidParameterException invalid luPublicationTypeKey
466      * @throws MissingParameterException luPublicationTypeKey not specified
467      * @throws OperationFailedException unable to complete request
468 	 */
469     public List<CluPublicationInfo> getCluPublicationsByType(@WebParam(name="luPublicationTypeKey")String luPublicationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
470 
471     /** 
472      * Retrieves an LU publication object by its identifier
473      * @param cluPublicationId CLU publication identifier
474      * @return CLU Publication information
475      * @throws DoesNotExistException CLU Publication not found
476      * @throws InvalidParameterException invalid cluPublicationId
477      * @throws MissingParameterException cluPublicationId not specified
478      * @throws OperationFailedException unable to complete request
479 	 */
480     public CluPublicationInfo getCluPublication(@WebParam(name="cluPublicationId")String cluPublicationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
481 
482     /** 
483      * Retrieves information about a Clu Result
484      * @param cluResultId identifier of the Clu Result
485      * @return information about a Clu Result
486      * @throws DoesNotExistException cluResult not found
487      * @throws InvalidParameterException invalid cluResultId
488      * @throws MissingParameterException missing cluResultId
489      * @throws OperationFailedException unable to complete request
490 	 */
491     public CluResultInfo getCluResult(@WebParam(name="cluResultId")String cluResultId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
492 
493     /** 
494      * Retrieves the cluResult for a particular clu
495      * @param cluId clu identifier
496      * @return result information for a clu
497      * @throws DoesNotExistException clu not found
498      * @throws InvalidParameterException invalid cluId
499      * @throws MissingParameterException cluId not specified
500      * @throws OperationFailedException unable to complete request
501 	 */
502     public List<CluResultInfo> getCluResultByClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
503 
504     /** 
505      * Retrieves the list of clu ids with the results of the specified usage type. This would for example allow requests for all clus which have a final grade.
506      * @param resultUsageTypeKey identifier of the result usage type
507      * @return list of clu ids
508      * @throws DoesNotExistException resultUsageType not found
509      * @throws InvalidParameterException invalid resultUsageTypeKey
510      * @throws MissingParameterException missing resultUsageTypeKey
511      * @throws OperationFailedException unable to complete request
512 	 */
513     public List<String> getCluIdsByResultUsageType(@WebParam(name="resultUsageTypeKey")String resultUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
514 
515     /** 
516      * Retrieves the list of clu ids which use a particular result component
517      * @param resultComponentId identifier of the result component
518      * @return list of clu ids
519      * @throws DoesNotExistException resultComponent not found
520      * @throws InvalidParameterException invalid resultComponentId
521      * @throws MissingParameterException missing resultComponentId
522      * @throws OperationFailedException unable to complete request
523 	 */
524     public List<String> getCluIdsByResultComponent(@WebParam(name="resultComponentId")String resultComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
525 
526     /** 
527      * Retrieve information on a CLU LO Relation.
528      * @param cluLoRelationId Identifier of the CLU LO Relation
529      * @return The retrieved CLU LO Relation information
530      * @throws DoesNotExistException cluLoRelation not found
531      * @throws InvalidParameterException invalid cluLoRelationId
532      * @throws MissingParameterException missing cluLoRelationId
533      * @throws OperationFailedException unable to complete request
534      * @throws PermissionDeniedException authorization failure
535 	 */
536     public CluLoRelationInfo getCluLoRelation(@WebParam(name="cluLoRelationId")String cluLoRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
537 
538     /** 
539      * Retrieves the list of canonical learning unit to learning objective relationships for a given CLU.
540      * @param cluId Identifier for the CLU
541      * @return List of canonical learning unit to learning objective relationships
542      * @throws DoesNotExistException clu not found
543      * @throws InvalidParameterException invalid cluId
544      * @throws MissingParameterException missing cluId
545      * @throws OperationFailedException unable to complete request
546 	 */
547     public List<CluLoRelationInfo> getCluLoRelationsByClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
548 
549     /** 
550      * Retrieves the list of CLU identifiers associated with a given learning objective identifier.
551      * @param loId Identifier for the learning objective
552      * @return List of CLU LO Relations
553      * @throws DoesNotExistException lo not found
554      * @throws InvalidParameterException invalid loId
555      * @throws MissingParameterException missing loId
556      * @throws OperationFailedException unable to complete request
557 	 */
558     public List<CluLoRelationInfo> getCluLoRelationsByLo(@WebParam(name="loId")String loId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
559 
560     /** 
561      * Retrieves the list of Resource requirements for the specified CLU
562      * @param cluId Unique identifier for the CLU
563      * @return List of resource requirements
564      * @throws DoesNotExistException clu not found
565      * @throws InvalidParameterException cluId invalid
566      * @throws MissingParameterException cluId missing
567      * @throws OperationFailedException unable to complete request
568 	 */
569     public List<String> getResourceRequirementsForCluId(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
570 
571     /** 
572      * Retrieve information on a CLU set. This information should be about the set itself, and in the case of a dynamic CLU set, should include the criteria used to generate the set.
573      * @param cluSetId Identifier of the CLU set
574      * @return The retrieved CLU set information
575      * @throws DoesNotExistException cluSet not found
576      * @throws InvalidParameterException invalid cluSetId
577      * @throws MissingParameterException missing cluSetId
578      * @throws OperationFailedException unable to complete request
579      * @throws PermissionDeniedException authorization failure
580 	 */
581     public CluSetInfo getCluSetInfo(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
582 
583 
584     /** 
585      * Retrieve information on a CLU set and its sub clu set fully expanded.
586      * @param cluSetId Identifier of the CLU set
587      * @return The retrieved CLU set tree view information
588      * @throws DoesNotExistException cluSet not found
589      * @throws InvalidParameterException invalid cluSetId
590      * @throws MissingParameterException missing cluSetId
591      * @throws OperationFailedException unable to complete request
592      * @throws PermissionDeniedException authorization failure
593 	 */
594     public CluSetTreeViewInfo getCluSetTreeView(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
595 
596     
597     /** 
598      * Retrieve information on CLU sets from a list of cluSet Ids.
599      * @param cluSetIdList List of identifiers of CLU sets
600      * @return The retrieved list of CLU set information
601      * @throws DoesNotExistException One or more cluSets not found
602      * @throws InvalidParameterException One or more cluSetIds invalid
603      * @throws MissingParameterException missing cluSetIdList
604      * @throws OperationFailedException unable to complete request
605      * @throws PermissionDeniedException authorization failure
606 	 */
607     public List<CluSetInfo> getCluSetInfoByIdList(@WebParam(name="cluSetIdList")List<String> cluSetIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
608 
609     /** 
610      * Retrieve the list of CLU Set Ids within a CLU Set
611      * @param cluSetId Identifier of the CLU set
612      * @return The retrieved list of CLU Set Ids within the specified CLU set
613      * @throws DoesNotExistException cluSet not found
614      * @throws InvalidParameterException invalid cluSetId
615      * @throws MissingParameterException missing cluSetId
616      * @throws OperationFailedException unable to complete request
617      * @throws PermissionDeniedException authorization failure
618 	 */
619     public List<String> getCluSetIdsFromCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
620 
621     /** 
622      * Check if the given CluSet is dynamic
623      * @param cluSetId Identifier of the CLU set
624      * @return The retrieved list of CLU Set Ids within the specified CLU set
625      * @throws DoesNotExistException cluSet not found
626      * @throws InvalidParameterException invalid cluSetId
627      * @throws MissingParameterException missing cluSetId
628      * @throws OperationFailedException unable to complete request
629      * @throws PermissionDeniedException authorization failure
630 	 */
631     public Boolean isCluSetDynamic(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
632     
633     
634     /** 
635      * Retrieves the list of CLUs in a CLU set. This only retrieves the direct members.
636      * @param cluSetId Identifier of the CLU set
637      * @return The retrieved list of information on the CLUs within the CLU set (flattened and de-duped)
638      * @throws DoesNotExistException cluSet not found
639      * @throws InvalidParameterException invalid cluSetId
640      * @throws MissingParameterException missing cluSetId
641      * @throws OperationFailedException unable to complete request
642      * @throws PermissionDeniedException authorization failure
643 	 */
644     public List<CluInfo> getClusFromCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
645 
646     /** 
647      * Retrieves the list of CLU Identifiers within a CLU Set. This only retrieves the direct members.
648      * @param cluSetId Identifier of the CLU set
649      * @return The retrieved list of CLU Ids within the specified CLU set (flattened and de-duped)
650      * @throws DoesNotExistException cluSet not found
651      * @throws InvalidParameterException invalid cluSetId
652      * @throws MissingParameterException missing cluSetId
653      * @throws OperationFailedException unable to complete request
654      * @throws PermissionDeniedException authorization failure
655 	 */
656     public List<String> getCluIdsFromCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
657 
658     /** 
659      * Retrieves the full list of CLUs in this CLU set or any cluset that is included within that.
660      * @param cluSetId Identifier of the CLU set
661      * @return The retrieved list of information on the CLUs
662      * @throws DoesNotExistException cluSet not found
663      * @throws InvalidParameterException invalid cluSetId
664      * @throws MissingParameterException missing cluSetId
665      * @throws OperationFailedException unable to complete request
666      * @throws PermissionDeniedException authorization failure
667 	 */
668     public List<CluInfo> getAllClusInCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
669 
670     /** 
671      * Retrieves the list of CLU Identifiers within a CLU Set or any cluset that is included within that.
672      * @param cluSetId Identifier of the CLU set
673      * @return The retrieved list of CLU Ids within the specified CLU set
674      * @throws DoesNotExistException cluSet not found
675      * @throws InvalidParameterException invalid cluSetId
676      * @throws MissingParameterException missing cluSetId
677      * @throws OperationFailedException unable to complete request
678      * @throws PermissionDeniedException authorization failure
679 	 */
680     public List<String> getAllCluIdsInCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
681 
682     /** 
683      * Checks if a CLU is a member of a CLU set or any contained CLU set
684      * @param cluId Identifier of the CLU to check
685      * @param cluSetId Identifier of the CLU set
686      * @return True if the CLU is a member of the CLU Set
687      * @throws DoesNotExistException clu, cluSet not found
688      * @throws InvalidParameterException invalid cluId, cluSetId
689      * @throws MissingParameterException missing cluId, cluSetId
690      * @throws OperationFailedException unable to complete request
691      * @throws PermissionDeniedException authorization failure
692 	 */
693     public Boolean isCluInCluSet(@WebParam(name="cluId")String cluId, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
694 
695     /** 
696      * Retrieves information about a LUI
697      * @param luiId identifier of the LUI
698      * @return information about a LUI
699      * @throws DoesNotExistException lui not found
700      * @throws InvalidParameterException invalid luiId
701      * @throws MissingParameterException missing luiId
702      * @throws OperationFailedException unable to complete request
703 	 */
704     public LuiInfo getLui(@WebParam(name="luiId")String luiId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
705 
706     /** 
707      * Retrieves information about LUIs from a list of Ids
708      * @param luiIdList List of LUI identifiers
709      * @return information about a list of LUIs
710      * @throws DoesNotExistException One or more luis not found
711      * @throws InvalidParameterException One or more invalid luiIds
712      * @throws MissingParameterException missing luiIdList
713      * @throws OperationFailedException unable to complete request
714 	 */
715     public List<LuiInfo> getLuisByIdList(@WebParam(name="luiIdList")List<String> luiIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
716 
717     /** 
718      * Retrieves the list of LUIs for the specified CLU and period
719      * @param cluId identifier of the CLU
720      * @param atpKey identifier for the academic time period
721      * @return list of LUI information
722      * @throws DoesNotExistException clu, atp not found
723      * @throws InvalidParameterException invalid cluId, atpKey
724      * @throws MissingParameterException missing cluId, atpKey
725      * @throws OperationFailedException unable to complete request
726 	 */
727     public List<LuiInfo> getLuisInAtpByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="atpKey")String atpKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
728 
729     /** 
730      * Retrieves the list of LUI ids for the specified CLU
731      * @param cluId identifier of the CLU
732      * @return list of LUI identifiers
733      * @throws DoesNotExistException clu not found
734      * @throws InvalidParameterException invalid cluId
735      * @throws MissingParameterException missing cluId
736      * @throws OperationFailedException unable to complete request
737 	 */
738     public List<String> getLuiIdsByCluId(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
739 
740     /** 
741      * Retrieves the list of LUI ids for the specified CLU and Time period
742      * @param cluId identifier of the CLU
743      * @param atpKey identifier for the academic time period
744      * @return list of LUI identifiers
745      * @throws DoesNotExistException clu, atp not found
746      * @throws InvalidParameterException invalid cluId, atpKey
747      * @throws MissingParameterException missing cluId, atpKey
748      * @throws OperationFailedException unable to complete request
749 	 */
750     public List<String> getLuiIdsInAtpByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="atpKey")String atpKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
751 
752     /** 
753      * Retrieves the list of allowed relation types between the two specified LUIs
754      * @param luiId identifier of the first LUI
755      * @param relatedLuiId identifier of the second LUI
756      * @return list of LU to LU relation types
757      * @throws DoesNotExistException lui, relatedLui not found
758      * @throws InvalidParameterException invalid luiId, relatedLuiId
759      * @throws MissingParameterException missing luiId, relatedLuiId
760      * @throws OperationFailedException unable to complete request
761 	 */
762     public List<String> getAllowedLuLuRelationTypesByLuiId(@WebParam(name="luiId")String luiId, @WebParam(name="relatedLuiId")String relatedLuiId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
763 
764     /** 
765      * Retrieves the list of LUI information for the LUIs related to the specified LUI Id with a certain LU to LU relation type (getRelatedLuisByLuiId from the other direction)
766      * @param relatedLuiId identifier of the LUI
767      * @param luLuRelationType the LU to LU relation type
768      * @return list of LUI information
769      * @throws DoesNotExistException relatedLui, luLuRelationType not found
770      * @throws InvalidParameterException invalid relatedLuiId, luLuRelationType
771      * @throws MissingParameterException missing relatedLuiId, luLuRelationType
772      * @throws OperationFailedException unable to complete request
773 	 */
774     public List<LuiInfo> getLuisByRelation(@WebParam(name="relatedLuiId")String relatedLuiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
775 
776     /** 
777      * Retrieves the list of LUI Ids for the specified related LUI Id and LU to LU relation type (getRelatedLuiIdsByLuiId from the other direction)
778      * @param relatedLuiId identifier of the LUI
779      * @param luLuRelationType the LU to LU relation type
780      * @return list of LUI identifiers
781      * @throws DoesNotExistException relatedLui, luLuRelationType not found
782      * @throws InvalidParameterException invalid relatedLuiId, luLuRelationType
783      * @throws MissingParameterException missing relatedLuiId, luLuRelationType
784      * @throws OperationFailedException unable to complete request
785 	 */
786     public List<String> getLuiIdsByRelation(@WebParam(name="relatedLuiId")String relatedLuiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
787 
788     /** 
789      * Retrieves the list of related LUI information for the specified LUI Id and LU to LU relation type (getLuisByRelation from the other direction)
790      * @param luiId identifier of the LUI
791      * @param luLuRelationType the LU to LU relation type
792      * @return list of LUI information
793      * @throws DoesNotExistException lui, luLuRelationType not found
794      * @throws InvalidParameterException invalid luiId, luLuRelationType
795      * @throws MissingParameterException missing luiId, luLuRelationType
796      * @throws OperationFailedException unable to complete request
797 	 */
798     public List<LuiInfo> getRelatedLuisByLuiId(@WebParam(name="luiId")String luiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
799 
800     /** 
801      * Retrieves the list of related LUI Ids for the specified LUI Id and LU to LU relation type. (getLuiIdsByRelation from the other direction)
802      * @param luiId identifier of the LUI
803      * @param luLuRelationType the LU to LU relation type
804      * @return list of LUI identifiers
805      * @throws DoesNotExistException luiId, luLuRelationType not found
806      * @throws InvalidParameterException invalid luiId, luLuRelationType
807      * @throws MissingParameterException missing luiId, luLuRelationType
808      * @throws OperationFailedException unable to complete request
809 	 */
810     public List<String> getRelatedLuiIdsByLuiId(@WebParam(name="luiId")String luiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
811 
812     /** 
813      * Retrieves the relationship information between LUIs given a specific relation instance
814      * @param luiLuiRelationId identifier of LUI to LUI relation
815      * @return information on the relation between two LUIs
816      * @throws DoesNotExistException luiLuiRelation not found
817      * @throws InvalidParameterException invalid luiLuiRelationId
818      * @throws MissingParameterException missing luiLuiRelationId
819      * @throws OperationFailedException unable to complete request
820 	 */
821     public LuiLuiRelationInfo getLuiLuiRelation(@WebParam(name="luiLuiRelationId")String luiLuiRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
822 
823     /** 
824      * Retrieves the list of relationship information for the specified LUI
825      * @param luiId identifier of the LUI
826      * @return list of LUI to LUI relation information
827      * @throws DoesNotExistException lui not found
828      * @throws InvalidParameterException invalid luiId
829      * @throws MissingParameterException missing luiId
830      * @throws OperationFailedException unable to complete request
831 	 */
832     public List<LuiLuiRelationInfo> getLuiLuiRelationsByLui(@WebParam(name="luiId")String luiId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
833 
834     /** 
835      * Validates a CLU. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the CLU (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the CLU can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
836      * @param validationType identifier of the extent of validation
837      * @param cluInfo CLU information to be tested.
838      * @return results from performing the validation
839      * @throws DoesNotExistException validationTypeKey not found
840      * @throws InvalidParameterException invalid validationTypeKey, cluInfo
841      * @throws MissingParameterException missing validationTypeKey, cluInfo
842      * @throws OperationFailedException unable to complete request
843 	 */
844     public List<ValidationResultInfo> validateClu(@WebParam(name="validationType")String validationType, @WebParam(name="cluInfo")CluInfo cluInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
845 
846     /** 
847      * Creates a new CLU
848      * @param luTypeKey identifier of the LU Type for the CLU being created
849      * @param cluInfo information about the CLU being created
850      * @return the created CLU information
851      * @throws AlreadyExistsException CLU already exists
852      * @throws DataValidationErrorException One or more values invalid for this operation
853      * @throws DoesNotExistException luTypeKey not found
854      * @throws InvalidParameterException invalid luTypeKey, cluInfo
855      * @throws MissingParameterException missing luTypeKey, cluInfo
856      * @throws OperationFailedException unable to complete request
857      * @throws PermissionDeniedException authorization failure
858 	 */
859     public CluInfo createClu(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="cluInfo")CluInfo cluInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
860 
861     /** 
862      * Updates an existing CLU
863      * @param cluId identifier for the CLU to be updated
864      * @param cluInfo updated information about the CLU
865      * @return the updated CLU information
866      * @throws DataValidationErrorException One or more values invalid for this operation
867      * @throws DoesNotExistException cluId not found
868      * @throws InvalidParameterException invalid cluId, cluInfo
869      * @throws MissingParameterException missing cluId, cluInfo
870      * @throws OperationFailedException unable to complete request
871      * @throws PermissionDeniedException authorization failure
872      * @throws VersionMismatchException The action was attempted on an out of date version
873 	 */
874     public CluInfo updateClu(@WebParam(name="cluId")String cluId, @WebParam(name="cluInfo")CluInfo cluInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
875 
876     /** 
877      * Deletes an existing CLU
878      * @param cluId identifier for the CLU to be deleted
879      * @return status of the operation
880      * @throws DoesNotExistException cluId not found
881      * @throws InvalidParameterException invalid cluId
882      * @throws MissingParameterException missing cluId
883      * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints
884      * @throws OperationFailedException unable to complete request
885      * @throws PermissionDeniedException authorization failure
886 	 */
887     public StatusInfo deleteClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException;
888 
889 
890     /** 
891      * Creates a new CLU version based on the current clu
892      * @param cluId identifier for the CLU to be versioned
893      * @param versionComment comment for the current version
894      * @return the new versioned CLU information
895      * @throws DataValidationErrorException One or more values invalid for this operation
896      * @throws DoesNotExistException cluId not found
897      * @throws InvalidParameterException invalid cluId
898      * @throws MissingParameterException missing cluId
899      * @throws OperationFailedException unable to complete request
900      * @throws PermissionDeniedException authorization failure
901      * @throws VersionMismatchException The action was attempted on an out of date version
902      */
903     public CluInfo createNewCluVersion(@WebParam(name="cluId")String cluId, @WebParam(name="versionComment")String versionComment) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
904 
905     
906     /** 
907      * Sets a specific version of the Clu as current. The sequence number must be greater than the existing current Clu version.
908      * This will truncate the current version's end date to the currentVersionStart param.
909      * If a Clu exists which is set to become current in the future, that clu's currentVersionStart and CurrentVersionEnd will be nullified.
910      * The currentVersionStart must be in the future to prevent changing historic data. 
911      * @param cluVersionId Version Specific Id of the Clu
912      * @param currentVersionStart Date when this clu becomes current. Must be in the future and be after the most current clu's start date. 
913      * @return status of the operation
914      * @throws DoesNotExistException cluVersionId not found
915      * @throws InvalidParameterException invalid cluVersionId, previousState, newState
916      * @throws MissingParameterException missing cluVersionId, previousState, newState
917      * @throws IllegalVersionSequencingException a Clu with higher sequence number from the one provided is marked current
918      * @throws OperationFailedException unable to complete request
919      * @throws PermissionDeniedException authorization failure
920      */
921     public StatusInfo setCurrentCluVersion(@WebParam(name="cluVersionId")String cluVersionId, @WebParam(name="currentVersionStart")Date currentVersionStart) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, OperationFailedException, PermissionDeniedException;
922 
923     /** 
924      * Updates the state of the specified CLU
925      * @param cluId identifier for the CLU to be updated
926      * @param luState new state for the CLU. Value is expected to be constrained to those in the luState enumeration.
927      * @return the updated CLU information
928      * @throws DataValidationErrorException new state not valid for existing state of CLU
929      * @throws DoesNotExistException cluId, luState not found
930      * @throws InvalidParameterException invalid cluId, luState
931      * @throws MissingParameterException missing cluId, luState
932      * @throws OperationFailedException unable to complete request
933      * @throws PermissionDeniedException authorization failure
934 	 */
935     public CluInfo updateCluState(@WebParam(name="cluId")String cluId, @WebParam(name="luState")String luState) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
936 
937     /** 
938      * Validates a cluCluRelation. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the cluCluRelation (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the relationship can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
939      * @param validationType identifier of the extent of validation
940      * @param cluCluRelationInfo cluCluRelation information to be tested.
941      * @return results from performing the validation
942      * @throws DoesNotExistException validationTypeKey not found
943      * @throws InvalidParameterException invalid validationTypeKey, cluCluRelationInfo
944      * @throws MissingParameterException missing validationTypeKey, cluCluRelationInfo
945      * @throws OperationFailedException unable to complete request
946 	 */
947     public List<ValidationResultInfo> validateCluCluRelation(@WebParam(name="validationType")String validationType, @WebParam(name="cluCluRelationInfo")CluCluRelationInfo cluCluRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
948 
949     /** 
950      * Create a directional relationship between two CLUs
951      * @param cluId identifier of the first CLU in the relationship - The From or Parent of the relation
952      * @param relatedCluId identifier of the second CLU in the relationship to be related to - the To or Child of the Relation
953      * @param luLuRelationTypeKey the LU to LU relationship type of the relationship
954      * @param cluCluRelationInfo information about the relationship between the two CLUs
955      * @return the created CLU to CLU relation information
956      * @throws AlreadyExistsException relationship already exists
957      * @throws CircularRelationshipException cluId equals relatedCluId
958      * @throws DataValidationErrorException One or more values invalid for this operation
959      * @throws DoesNotExistException cluId, relatedCluId, luLuRelationType not found
960      * @throws InvalidParameterException invalid cluId, relatedCluId, luluRelationType, cluCluRelationInfo
961      * @throws MissingParameterException missing cluId, relatedCluId, luluRelationType, cluCluRelationInfo
962      * @throws OperationFailedException unable to complete request
963      * @throws PermissionDeniedException authorization failure
964 	 */
965     public CluCluRelationInfo createCluCluRelation(@WebParam(name="cluId")String cluId, @WebParam(name="relatedCluId")String relatedCluId, @WebParam(name="luLuRelationTypeKey")String luLuRelationTypeKey, @WebParam(name="cluCluRelationInfo")CluCluRelationInfo cluCluRelationInfo) throws AlreadyExistsException, CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
966 
967     /** 
968      * Updates a relationship between two CLUs
969      * @param cluCluRelationId identifier of the CLU to CLU relation to be updated
970      * @param cluCluRelationInfo changed information about the CLU to CLU relationship
971      * @return the updated CLU to CLU relation information
972      * @throws DataValidationErrorException One or more values invalid for this operation
973      * @throws DoesNotExistException cluCluRelation not found
974      * @throws InvalidParameterException invalid cluCluRelationId, cluCluRelationInfo
975      * @throws MissingParameterException missing cluCluRelationId, cluCluRelationInfo
976      * @throws OperationFailedException unable to complete request
977      * @throws PermissionDeniedException authorization failure
978      * @throws VersionMismatchException The action was attempted on an out of date version.
979 	 */
980     public CluCluRelationInfo updateCluCluRelation(@WebParam(name="cluCluRelationId")String cluCluRelationId, @WebParam(name="cluCluRelationInfo")CluCluRelationInfo cluCluRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
981 
982     /** 
983      * Deletes a relationship between two CLUs
984      * @param cluCluRelationId identifier of CLU to CLU relationship to delete
985      * @return status of the operation (success or failure)
986      * @throws DoesNotExistException cluCluRelation not found
987      * @throws InvalidParameterException invalid cluCluRelationId
988      * @throws MissingParameterException missing cluCluRelationId
989      * @throws OperationFailedException unable to complete request
990      * @throws PermissionDeniedException authorization failure
991 	 */
992     public StatusInfo deleteCluCluRelation(@WebParam(name="cluCluRelationId")String cluCluRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
993 
994     /** 
995      * Validates information about publication for a clu. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the clu publication object (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the clu publication object can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
996      * @param validationType identifier of the extent of validation
997      * @param cluPublicationInfo CLU publication information to be tested.
998      * @return results from performing the validation
999      * @throws DoesNotExistException validationTypeKey not found
1000      * @throws InvalidParameterException invalid validationTypeKey, cluPublicationInfo
1001      * @throws MissingParameterException missing validationTypeKey, cluPublicationInfo
1002      * @throws OperationFailedException unable to complete request
1003 	 */
1004     public List<ValidationResultInfo> validateCluPublication(@WebParam(name="validationType")String validationType, @WebParam(name="cluPublicationInfo")CluPublicationInfo cluPublicationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
1005 
1006     /** 
1007      * Create a clu publication object, which contains information about publication for a clu.
1008      * @param cluId identifier of a clu
1009      * @param luPublicationType type of lu publication
1010      * @param cluPublicationInfo information about publication for a clu
1011      * @return information about the created clu publication object
1012      * @throws AlreadyExistsException clu publication object already exists
1013      * @throws DataValidationErrorException One or more values invalid for this operation
1014      * @throws InvalidParameterException invalid cluId, luPublicationType, cluPublicationInfo
1015      * @throws MissingParameterException missing cluId, luPublicationType, cluPublicationInfo
1016      * @throws OperationFailedException unable to complete request
1017      * @throws PermissionDeniedException authorization failure
1018 	 */
1019     public CluPublicationInfo createCluPublication(@WebParam(name="cluId")String cluId, @WebParam(name="luPublicationType")String luPublicationType, @WebParam(name="cluPublicationInfo")CluPublicationInfo cluPublicationInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1020 
1021     /** 
1022      * Updates an existing clu publication object
1023      * @param cluPublicationId identifier for the clu publication object to be updated
1024      * @param cluPublicationInfo updated information about the clu publication object
1025      * @return the updated clu publication information
1026      * @throws DataValidationErrorException One or more values invalid for this operation
1027      * @throws DoesNotExistException cluPublication not found
1028      * @throws InvalidParameterException invalid cluPublicationId, cluPublicationInfo
1029      * @throws MissingParameterException missing cluPublicationId, cluPublicationInfo
1030      * @throws OperationFailedException unable to complete request
1031      * @throws PermissionDeniedException authorization failure
1032      * @throws VersionMismatchException The action was attempted on an out of date version.
1033 	 */
1034     public CluPublicationInfo updateCluPublication(@WebParam(name="cluPublicationId")String cluPublicationId, @WebParam(name="cluPublicationInfo")CluPublicationInfo cluPublicationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
1035 
1036     /** 
1037      * Deletes an existing clu publication object
1038      * @param cluPublicationId identifier for the clu publication object to be deleted
1039      * @return status of the operation
1040      * @throws DoesNotExistException cluPublication not found
1041      * @throws InvalidParameterException invalid cluPublicationId
1042      * @throws MissingParameterException missing cluPublicationId
1043      * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints
1044      * @throws OperationFailedException unable to complete request
1045      * @throws PermissionDeniedException authorization failure
1046 	 */
1047     public StatusInfo deleteCluPublication(@WebParam(name="cluPublicationId")String cluPublicationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException;
1048 
1049     /** 
1050      * Validates information about results for a clu. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the clu result object (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the clu result object can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
1051      * @param validationType identifier of the extent of validation
1052      * @param cluResultInfo CLU result information to be tested.
1053      * @return results from performing the validation
1054      * @throws DoesNotExistException validationTypeKey not found
1055      * @throws InvalidParameterException invalid validationTypeKey, cluResultInfo
1056      * @throws MissingParameterException missing validationTypeKey, cluResultInfo
1057      * @throws OperationFailedException unable to complete request
1058 	 */
1059     public List<ValidationResultInfo> validateCluResult(@WebParam(name="validationType")String validationType, @WebParam(name="cluResultInfo")CluResultInfo cluResultInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
1060 
1061     /** 
1062      * Create a clu result object, which contains information about potential results for a clu.
1063      * @param cluId identifier of a clu
1064      * @param cluResultType type of clu result
1065      * @param cluResultInfo information about potential results for a clu
1066      * @return information about the created clu result
1067      * @throws AlreadyExistsException clu result already exists
1068      * @throws DataValidationErrorException One or more values invalid for this operation
1069      * @throws InvalidParameterException invalid cluId, cluResultType, cluResultInfo
1070      * @throws MissingParameterException missing cluId, cluResultType, cluResultInfo
1071      * @throws OperationFailedException unable to complete request
1072      * @throws PermissionDeniedException authorization failure
1073      * @throws DoesNotExistException resultUsageTypeKey not found
1074 	 */
1075     public CluResultInfo createCluResult(@WebParam(name="cluId")String cluId, @WebParam(name="cluResultType")String cluResultType, @WebParam(name="cluResultInfo")CluResultInfo cluResultInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DoesNotExistException;
1076 
1077     /** 
1078      * Updates an existing clu result
1079      * @param cluResultId identifier for the clu result to be updated
1080      * @param cluResultInfo updated information about the clu result
1081      * @return the updated clu result information
1082      * @throws DataValidationErrorException One or more values invalid for this operation
1083      * @throws DoesNotExistException cluResult not found
1084      * @throws InvalidParameterException invalid cluResultId, cluResultInfo
1085      * @throws MissingParameterException missing cluResultId, cluResultInfo
1086      * @throws OperationFailedException unable to complete request
1087      * @throws PermissionDeniedException authorization failure
1088      * @throws VersionMismatchException The action was attempted on an out of date version.
1089 	 */
1090     public CluResultInfo updateCluResult(@WebParam(name="cluResultId")String cluResultId, @WebParam(name="cluResultInfo")CluResultInfo cluResultInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
1091 
1092     /** 
1093      * Deletes an existing clu result
1094      * @param cluResultId identifier for the clu result to be deleted
1095      * @return status of the operation
1096      * @throws DoesNotExistException cluResult not found
1097      * @throws InvalidParameterException invalid cluResultId
1098      * @throws MissingParameterException missing cluResultId
1099      * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints
1100      * @throws OperationFailedException unable to complete request
1101      * @throws PermissionDeniedException authorization failure
1102 	 */
1103     public StatusInfo deleteCluResult(@WebParam(name="cluResultId")String cluResultId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException;
1104 
1105     /** 
1106      * Validates a cluLoRelation. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the cluLoRelation (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the relationship can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
1107      * @param validationType identifier of the extent of validation
1108      * @param cluLoRelationInfo cluLoRelation information to be tested.
1109      * @return results from performing the validation
1110      * @throws DoesNotExistException validationTypeKey not found
1111      * @throws InvalidParameterException invalid validationTypeKey, cluLoRelationInfo
1112      * @throws MissingParameterException missing validationTypeKey, cluLoRelationInfo
1113      * @throws OperationFailedException unable to complete request
1114 	 */
1115     public List<ValidationResultInfo> validateCluLoRelation(@WebParam(name="validationType")String validationType, @WebParam(name="cluLoRelationInfo")CluLoRelationInfo cluLoRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
1116 
1117     /** 
1118      * Creates a relationship between a learning objective and a CLU.
1119      * @param cluId CLU identifier
1120      * @param loId learning objective identifier
1121      * @param cluLoRelationType type of clu learning objective relationship
1122      * @param cluLoRelationInfo clu learning objective relationship information
1123      * @return the newly created clu learning objective relationship
1124      * @throws AlreadyExistsException connection between clu and learning objective already exists
1125      * @throws DoesNotExistException cluId, loId, cluLoRelationType not found
1126      * @throws InvalidParameterException one or more parameters invalid
1127      * @throws MissingParameterException one or more parameters not specified
1128      * @throws OperationFailedException unable to complete request
1129      * @throws PermissionDeniedException authorization failure
1130      * @throws DataValidationErrorException data validation error
1131 	 */
1132     public CluLoRelationInfo createCluLoRelation(@WebParam(name="cluId")String cluId, @WebParam(name="loId")String loId, @WebParam(name="cluLoRelationType")String cluLoRelationType, @WebParam(name="cluLoRelationInfo")CluLoRelationInfo cluLoRelationInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DataValidationErrorException;
1133 
1134     /** 
1135      * Updates a relationship between a clu and learning objective
1136      * @param cluLoRelationId identifier of the clu learning objective relationship to be updated
1137      * @param cluLoRelationInfo information about the clu learning objective relationship to be updated
1138      * @return the updated clu learning objective relationship information
1139      * @throws DataValidationErrorException One or more values invalid for this operation
1140      * @throws DoesNotExistException cluLoRelation not found
1141      * @throws InvalidParameterException one or more parameters invalid
1142      * @throws MissingParameterException one or more parameters missing
1143      * @throws OperationFailedException unable to complete request
1144      * @throws PermissionDeniedException authorization failure
1145      * @throws VersionMismatchException The action was attempted on an out of date version.
1146 	 */
1147     public CluLoRelationInfo updateCluLoRelation(@WebParam(name="cluLoRelationId")String cluLoRelationId, @WebParam(name="cluLoRelationInfo")CluLoRelationInfo cluLoRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
1148 
1149     /** 
1150      * Removes a relationship between a learning objective and a Clu.
1151      * @param cluLoRelationId CLU learning objective Relationship identifier
1152      * @return Status
1153      * @throws DoesNotExistException cluLoRelation not found
1154      * @throws InvalidParameterException invalid cluLoRelationId
1155      * @throws MissingParameterException cluLoRelationId not specified
1156      * @throws OperationFailedException unable to complete request
1157      * @throws PermissionDeniedException authorization failure
1158 	 */
1159     public StatusInfo deleteCluLoRelation(@WebParam(name="cluLoRelationId")String cluLoRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1160 
1161     /** 
1162      * Add a Resource requirement to a CLU
1163      * @param resourceTypeKey identifier of the resource requirement type to be added to the CLU
1164      * @param cluId identifier of the CLU
1165      * @return status of the operation (success or failure)
1166      * @throws AlreadyExistsException resourceTypeKey is already associated with the cluId
1167      * @throws DoesNotExistException resourceTypeKey or cluId not found
1168      * @throws InvalidParameterException resourceTypeKey or cluId invalid
1169      * @throws MissingParameterException resourceTypeKey or cluId missing
1170      * @throws OperationFailedException unable to complete request
1171      * @throws PermissionDeniedException authorization failure
1172 	 */
1173     public StatusInfo addCluResourceRequirement(@WebParam(name="resourceTypeKey")String resourceTypeKey, @WebParam(name="cluId")String cluId) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1174 
1175     /** 
1176      * Remove a Resource requirement from a CLU
1177      * @param resourceTypeKey identifier of the resource type to be removed from the CLU
1178      * @param cluId identifier of the CLU
1179      * @return status of the operation (success or failure)
1180      * @throws DoesNotExistException resourceTypeKey or cluId or relationship not found
1181      * @throws InvalidParameterException resourceTypeKey or cluId invalid
1182      * @throws MissingParameterException resourceTypeKey or cluId missing
1183      * @throws OperationFailedException unable to complete request
1184      * @throws PermissionDeniedException authorization failure
1185 	 */
1186     public StatusInfo removeCluResourceRequirement(@WebParam(name="resourceTypeKey")String resourceTypeKey, @WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1187 
1188     /** 
1189      * Validates information about a clu set. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the clu set (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the clu set can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
1190      * @param validationType identifier of the extent of validation
1191      * @param cluSetInfo CLU set information to be tested.
1192      * @return results from performing the validation
1193      * @throws DoesNotExistException validationTypeKey not found
1194      * @throws InvalidParameterException invalid validationTypeKey, cluSetInfo
1195      * @throws MissingParameterException missing validationTypeKey, cluSetInfo
1196      * @throws OperationFailedException unable to complete request
1197 	 */
1198     public List<ValidationResultInfo> validateCluSet(@WebParam(name="validationType")String validationType, @WebParam(name="cluSetInfo")CluSetInfo cluSetInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
1199 
1200     /** 
1201      * Creates a CLU set.
1202      * @param cluSetType type of the CLU set to be created
1203      * @param cluSetInfo information required to create a CLU set
1204      * @return the created CLU set information
1205      * @throws AlreadyExistsException the cluSet already exists
1206      * @throws DataValidationErrorException One or more values invalid for this operation
1207      * @throws InvalidParameterException invalid cluSetName, cluSetInfo
1208      * @throws MissingParameterException missing cluSetName, cluSetInfo
1209      * @throws OperationFailedException unable to complete request
1210      * @throws PermissionDeniedException authorization failure
1211      * @throws UnsupportedActionException CLU set need to be static or dynamic but not both
1212 	 */
1213     public CluSetInfo createCluSet(@WebParam(name="cluSetType")String cluSetType, @WebParam(name="cluSetInfo")CluSetInfo cluSetInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1214 
1215     /** 
1216      * Update the information for a CLU set
1217      * @param cluSetId identifier of the CLU set to be updated
1218      * @param cluSetInfo updated information about the CLU set
1219      * @return the updated CLU set information
1220      * @throws DataValidationErrorException One or more values invalid for this operation
1221      * @throws DoesNotExistException cluSet not found
1222      * @throws InvalidParameterException invalid cluSetId, cluSetInfo
1223      * @throws MissingParameterException missing cluSetId, cluSetInfo
1224      * @throws OperationFailedException unable to complete request
1225      * @throws PermissionDeniedException authorization failure
1226      * @throws VersionMismatchException The action was attempted on an out of date version.
1227      * @throws UnsupportedActionException CLU set need to be static or dynamic but not both
1228      * @throws CircularRelationshipException addedCluSetId cannot be added to the cluSetId
1229 	 */
1230     public CluSetInfo updateCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="cluSetInfo")CluSetInfo cluSetInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, UnsupportedActionException, CircularRelationshipException;
1231 
1232     /** 
1233      * Delete a CLU set
1234      * @param cluSetId identifier of the CLU set to be deleted
1235      * @return status of the operation (success or failure)
1236      * @throws DoesNotExistException cluSet not found
1237      * @throws InvalidParameterException invalid cluSetId
1238      * @throws MissingParameterException missing cluSetId
1239      * @throws OperationFailedException unable to complete request
1240      * @throws PermissionDeniedException authorization failure
1241 	 */
1242     public StatusInfo deleteCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1243 
1244     /** 
1245      * Adds one CLU set to another
1246      * @param cluSetId identifier of the host CLU set
1247      * @param addedCluSetId identifier of the CLU set to be added
1248      * @return status of the operation (success or failure)
1249      * @throws CircularRelationshipException addedCluSetId cannot be added to the cluSetId
1250      * @throws DoesNotExistException cluSet, addedCluSet not found
1251      * @throws InvalidParameterException invalid cluSetId, addedCluSetId
1252      * @throws MissingParameterException missing cluSetId, addedCluSetId
1253      * @throws OperationFailedException unable to complete request
1254      * @throws PermissionDeniedException authorization failure
1255      * @throws UnsupportedActionException CLU set is dynamically determined
1256 	 */
1257     public StatusInfo addCluSetToCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="addedCluSetId")String addedCluSetId) throws CircularRelationshipException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1258 
1259     /** 
1260      * 	Adds a list of CLU sets to another CluSet. If any individual one would fail, then an error is returned and none are added.
1261      * @param cluSetId identifier of the host CLU set
1262      * @param addedCluSetIdList list of identifiers of the CLU sets to be added
1263      * @return status of the operation (success or failure)
1264      * @throws CircularRelationshipException addedCluSetId cannot be added to the cluSetId
1265      * @throws DoesNotExistException cluSet, addedCluSet not found
1266      * @throws InvalidParameterException invalid cluSetId, addedCluSetId
1267      * @throws MissingParameterException missing cluSetId, addedCluSetId
1268      * @throws OperationFailedException unable to complete request
1269      * @throws PermissionDeniedException authorization failure
1270      * @throws UnsupportedActionException CLU set is dynamically determined
1271 	 */
1272     public StatusInfo addCluSetsToCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="addedCluSetIdList")List<String> addedCluSetIdList) throws CircularRelationshipException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1273 
1274     /** 
1275      * Removes one CLU set from another
1276      * @param cluSetId identifier of the host CLU set
1277      * @param removedCluSetId identifier of the CLU set to be removed
1278      * @return status of the operation (success or failure)
1279      * @throws DoesNotExistException cluSet, removedCluSet not found
1280      * @throws InvalidParameterException invalid cluSetId, removedCluSetId
1281      * @throws MissingParameterException missing cluSetId, removedCluSetId
1282      * @throws OperationFailedException unable to complete request
1283      * @throws PermissionDeniedException authorization failure
1284      * @throws UnsupportedActionException CLU set is dynamically determined
1285 	 */
1286     public StatusInfo removeCluSetFromCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="removedCluSetId")String removedCluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1287 
1288     /** 
1289      * Add a CLU to a CLU set
1290      * @param cluId identifier of CLU to add to the CLU set
1291      * @param cluSetId identifier of the CLU set
1292      * @return status of the operation (success or failure)
1293      * @throws DoesNotExistException clu, cluSet not found
1294      * @throws InvalidParameterException invalid cluId, cluSetId
1295      * @throws MissingParameterException missing cluId, cluSetId
1296      * @throws OperationFailedException unable to complete request
1297      * @throws PermissionDeniedException authorization failure
1298      * @throws UnsupportedActionException CLU set is dynamically determined
1299 	 */
1300     public StatusInfo addCluToCluSet(@WebParam(name="cluId")String cluId, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1301 
1302     /** 
1303      * Adds a list of CLUs to a CLU set. If any individual one would fail, then an error is returned and none are added.
1304      * @param cluSetIds list of identifiers of CLUs to add to the CLU set
1305      * @param cluSetId identifier of the CLU set to be added
1306      * @return status of the operation (success or failure)
1307      * @throws DoesNotExistException clu, cluSet not found
1308      * @throws InvalidParameterException invalid cluId, cluSetId
1309      * @throws MissingParameterException missing cluId, cluSetId
1310      * @throws OperationFailedException unable to complete request
1311      * @throws PermissionDeniedException authorization failure
1312      * @throws UnsupportedActionException CLU set is dynamically determined
1313 	 */
1314     public StatusInfo addClusToCluSet(@WebParam(name="cluIdList")List<String> cluIdList, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1315 
1316     /** 
1317      * Remove a CLU from a CLU set
1318      * @param cluId identifier of CLU to remove from the CLU set
1319      * @param cluSetId identifier of the CLU set
1320      * @return status of the operation (success or failure)
1321      * @throws DoesNotExistException clu, cluSet not found
1322      * @throws InvalidParameterException invalid cluId, cluSetId
1323      * @throws MissingParameterException missing cluId, cluSetId
1324      * @throws OperationFailedException unable to complete request
1325      * @throws PermissionDeniedException authorization failure
1326      * @throws UnsupportedActionException CLU set is dynamically determined
1327 	 */
1328     public StatusInfo removeCluFromCluSet(@WebParam(name="cluId")String cluId, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
1329 
1330     /** 
1331      * Validates a LUI. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the LUI (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the LUI can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
1332      * @param validationType identifier of the extent of validation
1333      * @param luiInfo LUI information to be tested.
1334      * @return results from performing the validation
1335      * @throws DoesNotExistException validationTypeKey not found
1336      * @throws InvalidParameterException invalid validationTypeKey, luiInfo
1337      * @throws MissingParameterException missing validationTypeKey, luiInfo
1338      * @throws OperationFailedException unable to complete request
1339 	 */
1340     public List<ValidationResultInfo> validateLui(@WebParam(name="validationType")String validationType, @WebParam(name="luiInfo")LuiInfo luiInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
1341 
1342     /** 
1343      * Creates a new LUI
1344      * @param cluId identifier of the CLU for the LUI being created
1345      * @param atpKey identifier of the academic time period for the LUI being created
1346      * @param luiInfo information about the LUI being created
1347      * @return the created LUI information
1348      * @throws AlreadyExistsException LUI already exists
1349      * @throws DataValidationErrorException One or more values invalid for this operation
1350      * @throws DoesNotExistException clu, atp not found
1351      * @throws InvalidParameterException invalid cluId, atpKey, luiInfo
1352      * @throws MissingParameterException missing cluId, atpKey, luiInfo
1353      * @throws OperationFailedException unable to complete request
1354      * @throws PermissionDeniedException authorization failure
1355 	 */
1356     public LuiInfo createLui(@WebParam(name="cluId")String cluId, @WebParam(name="atpKey")String atpKey, @WebParam(name="luiInfo")LuiInfo luiInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1357 
1358     /** 
1359      * Updates an existing LUI
1360      * @param luiId identifier for the LUI to be updated
1361      * @param luiInfo updated information about the LUI
1362      * @return the updated LUI information
1363      * @throws DataValidationErrorException One or more values invalid for this operation
1364      * @throws DoesNotExistException lui not found
1365      * @throws InvalidParameterException invalid luiId, luiInfo
1366      * @throws MissingParameterException missing luiId, luiInfo
1367      * @throws OperationFailedException unable to complete request
1368      * @throws PermissionDeniedException authorization failure
1369      * @throws VersionMismatchException The action was attempted on an out of date version.
1370 	 */
1371     public LuiInfo updateLui(@WebParam(name="luiId")String luiId, @WebParam(name="luiInfo")LuiInfo luiInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
1372 
1373     /** 
1374      * Deletes a LUI record
1375      * @param luiId identifier for the LUI to be deleted
1376      * @return status of the operation
1377      * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints
1378      * @throws DoesNotExistException lui not found
1379      * @throws InvalidParameterException invalid luiId
1380      * @throws MissingParameterException missing luiId
1381      * @throws OperationFailedException unable to complete request
1382      * @throws PermissionDeniedException authorization failure
1383 	 */
1384     public StatusInfo deleteLui(@WebParam(name="luiId")String luiId) throws DependentObjectsExistException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1385 
1386     /** 
1387      * Updates the state of the LUI
1388      * @param luiId identifier for the LUI to be updated
1389      * @param luState New state for LUI. Value is expected to be constrained to those in the luState enumeration.
1390      * @return the updated LUI information
1391      * @throws DataValidationErrorException New state not valid for existing state of LUI
1392      * @throws DoesNotExistException lui, luState not found
1393      * @throws InvalidParameterException invalid luiId, luState
1394      * @throws MissingParameterException missing luiId, luState
1395      * @throws OperationFailedException unable to complete request
1396      * @throws PermissionDeniedException authorization failure
1397 	 */
1398     public LuiInfo updateLuiState(@WebParam(name="luiId")String luiId, @WebParam(name="luState")String luState) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1399 
1400     /** 
1401      * Validates a relationship between LUIs. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the relationship (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the relationship can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object.
1402      * @param validationType identifier of the extent of validation
1403      * @param luiLuiRelationInfo LUI to LUI relationship information to be tested.
1404      * @return results from performing the validation
1405      * @throws DoesNotExistException validationTypeKey not found
1406      * @throws InvalidParameterException invalid validationTypeKey, luiLuiRelationInfo
1407      * @throws MissingParameterException missing validationTypeKey, luiLuiRelationInfo
1408      * @throws OperationFailedException unable to complete request
1409 	 */
1410     public List<ValidationResultInfo> validateLuiLuiRelation(@WebParam(name="validationType")String validationType, @WebParam(name="luiLuiRelationInfo")LuiLuiRelationInfo luiLuiRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
1411 
1412     /** 
1413      * Create a relationship between two LUIs
1414      * @param luiId identifier of the first LUI in the relationship
1415      * @param relatedLuiId identifier of the second LUI in the relationship to be related to
1416      * @param luLuRelationType the LU to LU relationship type of the relationship
1417      * @param luiLuiRelationInfo information about the relationship between the two LUIs
1418      * @return the created LUI to LUI relation information
1419      * @throws AlreadyExistsException relationship already exists
1420      * @throws CircularRelationshipException luiId equals relatedLuiId
1421      * @throws DataValidationErrorException One or more values invalid for this operation
1422      * @throws DoesNotExistException luiId, relatedLuiId, luLuRelationType not found
1423      * @throws InvalidParameterException invalid luiIds, luluRelationType, luiLuiRelationInfo
1424      * @throws MissingParameterException missing luiIds, luluRelationType, luiLuiRelationInfo
1425      * @throws OperationFailedException unable to complete request
1426      * @throws PermissionDeniedException authorization failure
1427 	 */
1428     public LuiLuiRelationInfo createLuiLuiRelation(@WebParam(name="luiId")String luiId, @WebParam(name="relatedLuiId")String relatedLuiId, @WebParam(name="luLuRelationType")String luLuRelationType, @WebParam(name="luiLuiRelationInfo")LuiLuiRelationInfo luiLuiRelationInfo) throws AlreadyExistsException, CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1429 
1430     /** 
1431      * Updates a relationship between two LUIs
1432      * @param luiLuiRelationId identifier of the LUI to LUI relation to update
1433      * @param luiLuiRelationInfo changed information about the relationship between the two LUIs
1434      * @return the update LUI to LUI relation information
1435      * @throws DataValidationErrorException One or more values invalid for this operation
1436      * @throws DoesNotExistException luiLuiRelation not found
1437      * @throws InvalidParameterException invalid luiLuiRelationId, luiLuiRelationInfo
1438      * @throws MissingParameterException missing luiLuiRelationId, luiLuiRelationInfo
1439      * @throws OperationFailedException unable to complete request
1440      * @throws PermissionDeniedException authorization failure
1441      * @throws VersionMismatchException The action was attempted on an out of date version.
1442 	 */
1443     public LuiLuiRelationInfo updateLuiLuiRelation(@WebParam(name="luiLuiRelationId")String luiLuiRelationId, @WebParam(name="luiLuiRelationInfo")LuiLuiRelationInfo luiLuiRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
1444 
1445     /** 
1446      * Deletes a relationship between two LUIs
1447      * @param luiLuiRelationId identifier of the LUI to LUI relation to delete
1448      * @return status of the operation (success or failure)
1449      * @throws DoesNotExistException luiLuiRelation not found
1450      * @throws InvalidParameterException invalid luiLuiRelationId
1451      * @throws MissingParameterException missing luiLuiRelationId
1452      * @throws OperationFailedException unable to complete request
1453      * @throws PermissionDeniedException authorization failure
1454 	 */
1455     public StatusInfo deleteLuiLuiRelation(@WebParam(name="luiLuiRelationId")String luiLuiRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1456 
1457 
1458 
1459 }