View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation
3    *
4    *  Licensed under the the Educational Community License, Version 1.0
5    * (the "License"); you may not use this file except in compliance
6    * with the License.  You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl1.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  /**
17   * Copyright 2010 The Kuali Foundation
18   *
19   *  Licensed under the the Educational Community License, Version 1.0
20   * (the "License"); you may not use this file except in compliance
21   * with the License.  You may obtain a copy of the License at
22   *
23   * http://www.opensource.org/licenses/ecl1.php
24   *
25   * Unless required by applicable law or agreed to in writing, software
26   * distributed under the License is distributed on an "AS IS" BASIS,
27   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28   * See the License for the specific language governing permissions and
29   * limitations under the License.
30   */
31  
32  package org.kuali.student.enrollment.lui.service;
33  
34  import org.kuali.rice.core.api.criteria.QueryByCriteria;
35  import org.kuali.student.enrollment.lui.dto.LuiCapacityInfo;
36  import org.kuali.student.enrollment.lui.dto.LuiInfo;
37  import org.kuali.student.enrollment.lui.dto.LuiLuiRelationInfo;
38  import org.kuali.student.enrollment.lui.dto.LuiSetInfo;
39  import org.kuali.student.r2.common.dto.ContextInfo;
40  import org.kuali.student.r2.common.dto.StatusInfo;
41  import org.kuali.student.r2.common.dto.ValidationResultInfo;
42  import org.kuali.student.r2.common.exceptions.*;
43  import org.kuali.student.r2.common.util.constants.LuiServiceConstants;
44  
45  import javax.jws.WebParam;
46  import javax.jws.WebService;
47  import javax.jws.soap.SOAPBinding;
48  import java.util.List;
49  
50  /**
51   * Learning Unit Instance (LUI) Service
52   *
53   * Manages the creation of Instances of the canonical Learning unit.
54   * An instance is associated with a particular time period during
55   * which is is offered.
56   *
57   * This includes course and section offerings as well as program
58   * offerings
59   *
60   * @version 0.0.7
61   *
62   * @author tom
63   * @author Mezba (16/11/2012)
64   */
65  
66  @WebService(name = "LuiService", serviceName ="LuiService", portName = "LuiService", targetNamespace = LuiServiceConstants.NAMESPACE)
67  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
68  
69  public interface LuiService {
70  
71      /**
72       * Retrieves a single Lui by a Lui Id.
73       *
74       * @param luiId the identifier for the Lui to be retrieved
75       * @param contextInfo information containing the principalId and
76       *        locale information about the caller of service operation
77       * @return the Lui requested
78       * @throws DoesNotExistException luiId not found
79       * @throws InvalidParameterException contextInfo is not valid
80       * @throws MissingParameterException luiId or contextInfo is
81       *         missing or null
82       * @throws OperationFailedException unable to complete request
83       * @throws PermissionDeniedException an authorization failure occurred
84       */
85      public LuiInfo getLui(@WebParam(name = "luiId") String luiId,
86                            @WebParam(name = "contextInfo") ContextInfo contextInfo)
87              throws DoesNotExistException,
88              InvalidParameterException,
89              MissingParameterException,
90              OperationFailedException,
91              PermissionDeniedException;
92  
93      /**
94       * Retrieves a list of Luis from a list of Lui Ids. The
95       * returned list may be in any order and if duplicates Ids are
96       * supplied, a unique set may or may not be returned.
97       *
98       * @param luiIds a list of Lui identifiers
99       * @param contextInfo information containing the principalId and
100      *        locale information about the caller of service operation
101      * @return a list of Luis
102      * @throws DoesNotExistException a luiId in the list was not found
103      * @throws InvalidParameterException contextInfo is not valid
104      * @throws MissingParameterException luiIds, an Id in luiIds, or
105      *         contextInfo is missing or null
106      * @throws OperationFailedException unable to complete request
107      * @throws PermissionDeniedException an authorization failure occurred
108      */
109     public List<LuiInfo> getLuisByIds(@WebParam(name = "luiIds") List<String> luiIds,
110                                       @WebParam(name = "contextInfo") ContextInfo contextInfo)
111             throws DoesNotExistException,
112             InvalidParameterException,
113             MissingParameterException,
114             OperationFailedException,
115             PermissionDeniedException;
116 
117     /**
118      * Retrieves a list of Lui Ids by Lui Type.
119      *
120      * @param luiTypeKey an identifier for a Lui Type
121      * @param contextInfo information containing the principalId and
122      *        locale information about the caller of service operation
123      * @return a list of Lui identifiers matching luiTypeKey or an
124      *         empty list if none found
125      * @throws InvalidParameterException contextInfo is not valid
126      * @throws MissingParameterException luiTypeKey or contextInfo is
127      *         missing or null
128      * @throws OperationFailedException unable to complete request
129      * @throws PermissionDeniedException an authorization failure occurred
130      */
131     public List<String> getLuiIdsByType(@WebParam(name = "luiTypeKey") String luiTypeKey,
132                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
133             throws InvalidParameterException,
134             MissingParameterException,
135             OperationFailedException,
136             PermissionDeniedException;
137 
138     /**
139      * Retrieves a list of Lui Ids by Clu.
140      * (the pattern says this should return the objects).
141      *
142      * @param cluId an identifier for the Clu
143      * @param contextInfo information containing the principalId and
144      *        locale information about the caller of service operation
145      * @return list of Lui Ids for the Clu
146      * @throws InvalidParameterException contextInfo is not valid
147      * @throws MissingParameterException cluId or contextInfo is
148      *         missing or null
149      * @throws OperationFailedException unable to complete request
150      * @throws PermissionDeniedException an authorization failure occurred
151      */
152     public List<String> getLuiIdsByClu(@WebParam(name = "cluId") String cluId,
153                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
154             throws InvalidParameterException,
155             MissingParameterException,
156             OperationFailedException,
157             PermissionDeniedException;
158 
159     /**
160      * Retrieves the list of Lui Ids for the specified atp and Lui
161      * Type.
162      *
163      * @param atpId an identifier for the Atp
164      * @param luiTypeKey an identifier for the Lui Type
165      * @param contextInfo information containing the principalId and
166      *       locale information about the caller of service operation
167      * @return a list of identifiers of Luis offered in the given Atp
168      *         of the specified luiType
169      * @throws InvalidParameterException contextInfo is not valid
170      * @throws MissingParameterException atpId, luiTypeKey, or contextInfo
171      *         is missing or null
172      * @throws OperationFailedException unable to complete request
173      * @throws PermissionDeniedException an authorization failure occurred
174      */
175     public List<String> getLuiIdsByAtpAndType(@WebParam(name = "atpId") String atpId,
176                                               @WebParam(name = "luiTypeKey") String luiTypeKey,
177                                               @WebParam(name = "contextInfo") ContextInfo contextInfo )
178             throws InvalidParameterException,
179             MissingParameterException,
180             OperationFailedException,
181             PermissionDeniedException;
182 
183     /**
184      * Retrieves the list of Luis for the specified atp and Lui Type.
185      *
186      * @param atpId an identifier for the Atp
187      * @param luiTypeKey an identifier for the Lui Type
188      * @param contextInfo information containing the principalId and
189      *        locale information about the caller of service operation
190      * @return a list of Luis
191      * @throws InvalidParameterException contextInfo is not valid
192      * @throws MissingParameterException atpId, luiTypeKey, or
193      *         contextInfo is missing or null
194      * @throws OperationFailedException unable to complete request
195      * @throws PermissionDeniedException an authorization failure occurred
196      */
197     public List<LuiInfo> getLuisByAtpAndType (@WebParam(name = "atpId") String atpId,
198                                               @WebParam(name = "luiTypeKey") String luiTypeKey,
199                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
200             throws InvalidParameterException,
201             MissingParameterException,
202             OperationFailedException,
203             PermissionDeniedException;
204 
205     /**
206      * Retrieves the list of Lui Ids for the specified Clu and Time
207      * period.
208      *
209      * @param cluId an identifier for the Clu
210      * @param atpId an identifier for the Atp
211      * @param contextInfo information containing the principalId and
212      *        locale information about the caller of service operation
213      * @return a list of identifiers of Luis offered in atpId and
214      *         related to cluId
215      * @throws InvalidParameterException contextInfo is not valid
216      * @throws MissingParameterException cluId, atpId, or contextInfo
217      *         is missing or null
218      * @throws OperationFailedException unable to complete request
219      * @throws PermissionDeniedException an authorization failure occurred
220      */
221     public List<String> getLuiIdsByAtpAndClu(@WebParam(name = "cluId") String cluId,
222                                              @WebParam(name = "atpId") String atpId,
223                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
224             throws InvalidParameterException,
225             MissingParameterException,
226             OperationFailedException,
227             PermissionDeniedException;
228 
229     /**
230      * Retrieves the list of Luis for the specified Clu and Atp.
231      *
232      * @param cluId an identifier for the Clu
233      * @param atpId an identifier for the Atp
234      * @param contextInfo information containing the principalId and
235      *        locale information about the caller of service operation
236      * @return a list of Luis offered in atpId and related to cluId
237      * @throws InvalidParameterException contextInfo is not valid
238      * @throws MissingParameterException cluId, atpId, or contextInfo
239      *         is missing or null
240      * @throws OperationFailedException unable to complete request
241      * @throws PermissionDeniedException an authorization failure occurred
242      */
243     public List<LuiInfo> getLuisByAtpAndClu(@WebParam(name = "cluId") String cluId,
244                                             @WebParam(name = "atpId") String atpId,
245                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
246             throws InvalidParameterException,
247             MissingParameterException,
248             OperationFailedException,
249             PermissionDeniedException;
250 
251     /**
252      * Searches for Luis that meet the given search criteria and
253      * returns a list of Lui identifiers that meet the criteria.
254      *
255      * @param criteria the search criteria
256      * @param contextInfo information containing the principalId and
257      *        locale information about the caller of service operation
258      * @return a list of Lui Ids matching the criteria
259      * @throws InvalidParameterException criteria or contextInfo is
260      *         not valid
261      * @throws MissingParameterException criteria or contextInfo is
262      *         missing or null
263      * @throws OperationFailedException unable to complete request
264      * @throws PermissionDeniedException an authorization failure occurred
265      */
266     public List<String> searchForLuiIds(@WebParam(name = "criteria") QueryByCriteria criteria,
267                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
268             throws InvalidParameterException,
269             MissingParameterException,
270             OperationFailedException,
271             PermissionDeniedException;
272 
273     /**
274      * Searches for Luis that meet the given search criteria.
275      *
276      * @param criteria the search criteria
277      * @param contextInfo information containing the principalId and
278      *        locale information about the caller of service operation
279      * @return a list of Luis matching the criteria
280      * @throws InvalidParameterException criteria or contextInfo is
281      *         not valid
282      * @throws MissingParameterException criteria or contextInfo is
283      *         missing or null
284      * @throws OperationFailedException unable to complete request
285      * @throws PermissionDeniedException an authorization failure occurred
286      */
287     public List<LuiInfo> searchForLuis(@WebParam(name = "criteria") QueryByCriteria criteria,
288                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
289             throws InvalidParameterException,
290             MissingParameterException,
291             OperationFailedException,
292             PermissionDeniedException;
293 
294     /**
295      * Validates a Lui. Depending on the value of validationType, this
296      * validation could be limited to tests on just the current Lui
297      * and its directly contained sub-objects or expanded to perform
298      * all tests related to this Lui. If an identifier is present for
299      * the Lui (and/or one of its contained sub-objects) and a record
300      * is found for that identifier, the validation checks if the Lui
301      * can be updated to the new values. If an identifier is not
302      * present or a record does not exist, the validation checks if
303      * the object with the given data can be created.
304      *
305      * @param validationTypeKey the identifier for the validation Type
306      * @param cluId the identifier for the Clu to which the Lui is
307      *        attached
308      * @param atpId the identifier for the Atp to which the Lui if
309      *        offered
310      * @param luiTypeKey the identifier for the Lui Type
311      * @param luiInfo the object to be validated
312      * @param contextInfo information containing the principalId and
313      *        locale information about the caller of service operation
314      * @return a list of validation results or an empty list if
315      *         validation succeeded
316      * @throws DoesNotExistException validationTypeKey, cluId, atpId,
317      *         or luiTypeKey is not found
318      * @throws InvalidParameterException luiInfo or contextInfo is not
319      *         valid
320      * @throws MissingParameterException validationTypeKey, cluId,
321      *         atpId, luiTypeKey, luiInfo, or contextInfo is missing
322      *         or null
323      * @throws OperationFailedException unable to complete request
324      * @throws PermissionDeniedException an authorization failure occurred
325      */
326     public List<ValidationResultInfo> validateLui(@WebParam(name = "validationTypeKey") String validationTypeKey,
327                                                   @WebParam(name = "cluId") String cluId, @WebParam(name="atpId") String atpId,
328                                                   @WebParam(name = "luiTypeKey") String luiTypeKey,
329                                                   @WebParam(name = "luiInfo") LuiInfo luiInfo,
330                                                   @WebParam(name = "contextInfo") ContextInfo contextInfo)
331             throws DoesNotExistException,
332             InvalidParameterException,
333             MissingParameterException,
334             OperationFailedException,
335             PermissionDeniedException;;
336 
337     /**
338      * Creates a new LUI. The Lui Id, Type, Clu Id, Atp Id, and Meta
339      * information may not be set in the supplied data.
340      *
341      * @param cluId the identifier for the Clu
342      * @param atpId the identifier for the Atp
343      * @param luiTypeKey an identifier for the Type of the new Lui
344      * @param luiInfo the data with which to create the Lui
345      * @param contextInfo information containing the principalId and
346      *        locale information about the caller of service operation
347      * @return the new Lui
348      * @throws DataValidationErrorException supplied data is invalid
349      * @throws DoesNotExistException cluId, atpId, or luiTypeKey is
350      *         not found
351      * @throws InvalidParameterException luiInfo or contextInfo is not valid
352      * @throws MissingParameterException cluId, atpId, luiTypeKey,
353      *         luiInfo, or contextInfo is missing or null
354      * @throws OperationFailedException unable to complete request
355      * @throws PermissionDeniedException an authorization failure occurred
356      * @throws ReadOnlyException an attempt at supplying information
357      *         designated as read only
358      */
359     public LuiInfo createLui(@WebParam(name = "cluId") String cluId,
360                              @WebParam(name = "atpId") String atpId,
361                              @WebParam(name = "luiTypeKey") String luiTypeKey,
362                              @WebParam(name = "luiInfo") LuiInfo luiInfo,
363                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
364             throws DataValidationErrorException,
365             DoesNotExistException,
366             InvalidParameterException,
367             MissingParameterException,
368             OperationFailedException,
369             PermissionDeniedException,
370             ReadOnlyException;
371 
372     /**
373      * Updates an existing Lui. The Lui Id, Type, Clu Id, Atp Id, and
374      * Meta information may not be changed.
375      *
376      * @param luiId the identifier for the LUI to be updated
377      * @param luiInfo the new data for the Lui
378      * @param contextInfo information containing the principalId and
379      *        locale information about the caller of service operation
380      * @return the updated Lui
381      * @throws DataValidationErrorException supplied data is invalid
382      * @throws DoesNotExistException luiId not found
383      * @throws InvalidParameterException luiInfo or contextInfo is not valid
384      * @throws MissingParameterException luiId, luiInfo, or
385      *         contextInfo is missing or null
386      * @throws OperationFailedException unable to complete request
387      * @throws PermissionDeniedException an authorization failure occurred
388      * @throws ReadOnlyException an attempt at changing information
389      *         designated as read only
390      * @throws VersionMismatchException optimistic locking failure or
391      *         the action was attempted on an out of date version
392      */
393     public LuiInfo updateLui(@WebParam(name = "luiId") String luiId,
394                              @WebParam(name = "luiInfo") LuiInfo luiInfo,
395                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
396             throws DataValidationErrorException,
397             DoesNotExistException,
398             InvalidParameterException,
399             MissingParameterException,
400             OperationFailedException,
401             PermissionDeniedException,
402             ReadOnlyException,
403             VersionMismatchException;
404 
405     /**
406      * Deletes an existing Lui.
407      *
408      * @param luiId the identifier for the LUI to be deleted
409      * @param contextInfo information containing the principalId and
410      *        locale information about the caller of service operation
411      * @return the status of the delete operation. This must always be true.
412      * @throws DependentObjectsExistException the delete operation
413      *         would leave orphaned objects or violate integrity
414      *         constraints
415      * @throws DoesNotExistException luiId not found
416      * @throws InvalidParameterException contextInfo is not valid
417      * @throws MissingParameterException luiId or contextInfo is
418      *         missing or null
419      * @throws OperationFailedException unable to complete request
420      * @throws PermissionDeniedException an authorization failure occurred
421      */
422     public StatusInfo deleteLui(@WebParam(name = "luiId") String luiId,
423                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
424             throws DependentObjectsExistException,
425             DoesNotExistException,
426             InvalidParameterException,
427             MissingParameterException,
428             OperationFailedException,
429             PermissionDeniedException;
430 
431     /**
432      * Retrieves a single LuiLuiRelation by a LuiLuiRelation Id.
433      *
434      * @param luiLuiRelationId a unique identifier for the
435      *        LuiLuiRelation to be retrieved
436      * @param contextInfo information containing the principalId and
437      *        locale information about the caller of service operation
438      * @return the LuiLuiRelation requested
439      * @throws DoesNotExistException luiLuiRelationId is not found
440      * @throws InvalidParameterException contextInfo is not valid
441      * @throws MissingParameterException luiLuiRetaionId or
442      *         contextInfo is missing or null
443      * @throws OperationFailedException unable to complete request
444      * @throws PermissionDeniedException an authorization failure occurred
445      */
446     public LuiLuiRelationInfo getLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId,
447                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
448             throws DoesNotExistException,
449             InvalidParameterException,
450             MissingParameterException,
451             OperationFailedException,
452             PermissionDeniedException;
453 
454     /**
455      * Retrieves a list of LuiLuiRelations from a list of
456      * LuiLuiRelation Ids. The returned list may be in any order and
457      * if duplicates Ids are supplied, a unique set may or may not be
458      * returned.
459      *
460      * @param luiLuiRelationIds a list of LuiLuiRelation identifiers
461      * @param contextInfo Context information containing the principalId
462      *                and locale information about the caller of
463      *                service operation
464      * @return information about a list of LuiLuiRelations
465      * @throws DoesNotExistException a luiLuiRelationId in the list
466      *         was not found
467      * @throws InvalidParameterException contextInfo is not valid
468      * @throws MissingParameterException luiLuiRelationIds, a
469      *         luiLuiRelationId in luiLuiRelationIds, or contextInfo
470      *         is missing or null
471      * @throws OperationFailedException unable to complete request
472      * @throws PermissionDeniedException an authorization failure occurred
473      */
474     public List<LuiLuiRelationInfo> getLuiLuiRelationsByIds(@WebParam(name = "luiLuiRelationIds") List<String> luiLuiRelationIds,
475                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
476             throws DoesNotExistException,
477             InvalidParameterException,
478             MissingParameterException,
479             OperationFailedException,
480             PermissionDeniedException;
481 
482     /**
483      * Retrieves a list of LuiLuiRelation Ids by a LuiLuiRelation
484      * Type.
485      *
486      * @param luiLuiRelationTypeKey an identifier for a LuiLuiRelation
487      *                              Type
488      * @param contextInfo information containing the principalId and
489      *        locale information about the caller of service operation
490      * @return a list of LuiLuiRelation identifiers
491      * @throws InvalidParameterException contextInfo is not valid
492      * @throws MissingParameterException luiLuiRelationTypeKey or
493      *         contextInfo is missing or null
494      * @throws OperationFailedException unable to complete request
495      * @throws PermissionDeniedException an authorization failure occurred
496      */
497     public List<String> getLuiLuiRelationIdsByType(@WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
498                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
499             throws InvalidParameterException,
500             MissingParameterException,
501             OperationFailedException,
502             PermissionDeniedException;
503 
504     /**
505      * Retrieves all LuiLuiRelations to the given Lui.
506      *
507      * @param luiId a unique identifier of the LUI
508      * @param contextInfo information containing the principalId and
509      *        locale information about the caller of service operation
510      * @return the LuiLuiRelations to the Lui
511      * @throws InvalidParameterException contextInfo is not valid
512      * @throws MissingParameterException luiId or contextInfo is
513      *         missing or null
514      * @throws OperationFailedException unable to complete request
515      * @throws PermissionDeniedException an authorization failure occurred
516      */
517     public List<LuiLuiRelationInfo> getLuiLuiRelationsByLui(@WebParam(name = "luiId") String luiId,
518                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
519             throws InvalidParameterException,
520             MissingParameterException,
521             OperationFailedException,
522             PermissionDeniedException;
523 
524     /**
525      * Retrieves all LuiLuiRelations between the given Luis.
526      *
527      * @param luiId a unique identifier of the LUI
528      * @param relatedLuiId a unique identifier of another LUI
529      * @param contextInfo information containing the principalId and
530      *        locale information about the caller of service operation
531      * @return the LuiLuiRelations between the given Luis
532      * @throws InvalidParameterException contextInfo is not valid
533      * @throws MissingParameterException luiId, relatedLuiId, or
534      *         contextInfo is missing or null
535      * @throws OperationFailedException unable to complete request
536      * @throws PermissionDeniedException an authorization failure occurred
537      */
538     public List<LuiLuiRelationInfo> getLuiLuiRelationsByLuiAndRelatedLui(@WebParam(name = "luiId") String luiId,
539                                                                          @WebParam(name = "relatedLuiId") String relatedLuiId,
540                                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
541             throws InvalidParameterException,
542             MissingParameterException,
543             OperationFailedException,
544             PermissionDeniedException;
545 
546     /**
547      * Retrieves a list of LUI Ids for the specified related LUI Id
548      * and LU to LU relation type (getRelatedLuiIdsByLuiId from the
549      * other direction). 
550      *
551      * @param relatedLuiId identifier of the LUI
552      * @param luiLuiRelationTypeKey the LU to LU relation type
553      * @param contextInfo Context information containing the principalId
554      *        and locale information about the caller of service
555      *        operation
556      * @return list of LUI identifiers, empty list of none found
557      * @throws InvalidParameterException invalid parameter
558      * @throws MissingParameterException missing parameter
559      * @throws OperationFailedException  unable to complete request
560      * @throws PermissionDeniedException an authorization failure occurred
561      */
562     public List<String> getLuiIdsByRelatedLuiAndRelationType(@WebParam(name = "relatedLuiId") String relatedLuiId,
563                                                              @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
564                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
565             throws InvalidParameterException,
566             MissingParameterException,
567             OperationFailedException,
568             PermissionDeniedException;
569 
570     /**
571      * Retrieves the list of LUI information for the LUIs related to
572      * the specified LUI Id with a certain LU to LU relation type.
573      * (getRelatedLuisByLuiId from the other direction)
574      *
575      * @param relatedLuiId identifier of the LUI
576      * @param luiLuiRelationTypeKey the LU to LU relation type
577      * @param contextInfo Context information containing the principalId
578      *        and locale information about the caller of service
579      *        operation
580      * @return list of LUI information, empty list if none
581      * @throws InvalidParameterException invalid parameter
582      * @throws MissingParameterException missing paremeter
583      * @throws OperationFailedException  unable to complete request
584      * @throws PermissionDeniedException an authorization failure occurred
585      */
586     public List<LuiInfo> getLuisByRelatedLuiAndRelationType(@WebParam(name = "relatedLuiId") String relatedLuiId,
587                                                             @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
588                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
589             throws InvalidParameterException,
590             MissingParameterException,
591             OperationFailedException,
592             PermissionDeniedException;
593 
594     /**
595      * Retrieves the list of related LUI Ids for the specified LUI Id
596      * and LU to LU relation type. (getLuiIdsByRelatedLuiAndRelationType from the other
597      * direction).
598      *
599      * @param luiId identifier of the LUI
600      * @param luiLuiRelationTypeKey the LU to LU relation type
601      * @param contextInfo Context information containing the principalId
602      *        and locale information about the caller of service
603      *        operation
604      * @return list of LUI identifier, empty list if none found
605      * @throws InvalidParameterException invalid parameter
606      * @throws MissingParameterException missing parameter
607      * @throws OperationFailedException unable to complete request
608      * @throws PermissionDeniedException an authorization failure occurred
609      */
610     public List<String> getLuiIdsByLuiAndRelationType(@WebParam(name = "luiId") String luiId,
611                                                       @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
612                                                       @WebParam(name = "contextInfo") ContextInfo contextInfo)
613             throws InvalidParameterException,
614             MissingParameterException,
615             OperationFailedException,
616             PermissionDeniedException;
617 
618     /**
619      * Retrieves the list of related LUI information for the specified
620      * LUI Id and LU to LU relation type (getLuisByRelatedLuiAndRelationType from the
621      * other direction).
622      *
623      * @param luiId identifier of the LUI
624      * @param luiLuiRelationTypeKey the LU to LU relation type
625      * @param contextInfo Context information containing the principalId
626      *        and locale information about the caller of service
627      *        operation
628      * @return list of LUI information, empty list if none found
629      * @throws InvalidParameterException invalid luiId, luiLuiRelationTypeKey
630      * @throws MissingParameterException missing luiId, luiLuiRelationTypeKey
631      * @throws OperationFailedException unable to complete request
632      * @throws PermissionDeniedException an authorization failure occurred
633      */
634     public List<LuiInfo> getRelatedLuisByLuiAndRelationType(@WebParam(name = "luiId") String luiId,
635                                                             @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
636                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
637             throws InvalidParameterException,
638             MissingParameterException,
639             OperationFailedException,
640             PermissionDeniedException;
641 
642     /**
643      * Retrieves all LuiLuiRelations between a Lui and Luis of the
644      * given Lui Type.
645      *
646      * @param luiId a unique identifier for the Lui
647      * @param relatedLuiTypeKey a unique identifier for a Lui Type
648      * @param contextInfo information containing the principalId and
649      *        locale information about the caller of service operation
650      * @return a list of LuiLuiRelations between luiId and Luis of
651      *         relatedLuiTypeKey
652      * @throws InvalidParameterException contextInfo is not valid
653      * @throws MissingParameterException luiId, relatedLuiTypeKey, or
654      *         contextInfo is missing or null
655      * @throws OperationFailedException unable to complete request
656      * @throws PermissionDeniedException an authorization failure occurred
657      */
658     public List<LuiInfo> getLuiLuiRelationsByLuiAndRelatedLuiType(@WebParam(name = "luiId") String luiId,
659                                                                   @WebParam(name = "relatedLuiTypeKey") String relatedLuiTypeKey,
660                                                                   @WebParam(name = "contextInfo") ContextInfo contextInfo)
661             throws InvalidParameterException,
662             MissingParameterException,
663             OperationFailedException,
664             PermissionDeniedException;
665 
666     /**
667      * Searches for LuiLuiRelations that meet the search criteria and
668      * returns a list of LuiLuiRelation identifiers that meet the
669      * criteria.
670      *
671      * @param criteria the search criteria
672      * @param contextInfo information containing the principalId and
673      *        locale information about the caller of service operation
674      * @return list of LuiLuiRelationIds
675      * @throws InvalidParameterException criteria or contextInfo is
676      *         not valid
677      * @throws MissingParameterException criteria or contextInfo is
678      *         missing os null
679      * @throws OperationFailedException unable to complete request
680      * @throws PermissionDeniedException an authorization failure occurred
681      */
682     public List<String> searchForLuiLuiRelationIds(@WebParam(name = "criteria") QueryByCriteria criteria,
683                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
684             throws InvalidParameterException,
685             MissingParameterException,
686             OperationFailedException,
687             PermissionDeniedException;
688 
689     /**
690      * Searches for LuiLuiRelations that meet the search criteria and
691      * returns a list of LuiLuiRelations that meet the criteria.
692      *
693      * @param criteria the search criteria
694      * @param contextInfo information containing the principalId and
695      *        locale information about the caller of service operation
696      * @return list of LuiLuiRelations
697      * @throws InvalidParameterException criteria or contextInfo is
698      *         not valid
699      * @throws MissingParameterException criteria or contextInfo is
700      *         missing os null
701      * @throws PermissionDeniedException an authorization failure occurred
702      */
703     public List<LuiLuiRelationInfo> searchForLuiLuiRelations(@WebParam(name = "criteria") QueryByCriteria criteria,
704                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
705             throws InvalidParameterException,
706             MissingParameterException,
707             OperationFailedException,
708             PermissionDeniedException;
709 
710     /**
711      * Validates a LuiLuiRelations. Depending on the value of
712      * validationType, this validation could be limited to tests on
713      * just the current LuiLuiRelation and its directly contained
714      * sub-objects or expanded to perform all tests related to this
715      * LuiLuiRelation. If an identifier is present for the
716      * LuiLuiRelation (and/or one of its contained sub-objects) and a
717      * record is found for that identifier, the validation checks if
718      * the LuiLuiRelation can be updated to the new values. If an
719      * identifier is not present or a record does not exist, the
720      * validation checks if the object with the given data can be
721      * created.
722      *
723      * @param validationTypeKey the identifier for the validation Type
724      * @param luiId the identifier for the Lui 
725      * @param relatedLuiId the identifier for the related Lui 
726      * @param luiLuiRelationTypeKey the identifier for LuiLuiRelation Type
727      * @param luiLuiRelationInfo the LuiLuiRelation to ve validated
728      * @param contextInfo information containing the principalId and
729      *        locale information about the caller of service operation
730      * @return a list of validation results or an empty list if
731      *         validation succeeded
732      * @throws DoesNotExistException validationTypeKey, luiId,
733      *         relatedLuiId, or luiLuiRelationTypeKey is not found
734      * @throws InvalidParameterException luiLuiRelationInfo or
735      *         contextInfo is missing or null
736      * @throws MissingParameterException validationTypeKey, luiId,
737      *         relatedLuiId, luiLuiRelationTypeKey,
738      *         luiLuiRelationInfo, or contextInfo is missing or null
739      * @throws OperationFailedException unable to complete request
740      * @throws PermissionDeniedException an authorization failure occurred
741      */
742     public List<ValidationResultInfo> validateLuiLuiRelation(@WebParam(name = "validationTypeKey") String validationTypeKey,
743                                                              @WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiId") String relatedLuiId,
744                                                              @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
745                                                              @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo,
746                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
747             throws DoesNotExistException,
748             InvalidParameterException,
749             MissingParameterException,
750             OperationFailedException,
751             PermissionDeniedException;;
752 
753     /**
754      * Create new LuiLuiRelation. The LuiLuiRelation Id, Type, luiId,
755      * relatedLuiId, and Meta information may not be set in the
756      * supplied data.
757      *
758      * @param luiId identifier of the first LUI in the relationship
759      * @param relatedLuiId identifier of the second LUI in the
760      *        relationship to be related
761      * @param luiLuiRelationTypeKey a unique key fo rthe Type or new
762      *        LuiLuiRelation
763      * @param luiLuiRelationInfo the data with which to create the
764      *        LuiLuiRelation
765      * @param contextInfo information containing the principalId and
766      *        locale information about the caller of service operation
767      * @return the new LuiLuiRelation
768      * @throws CircularRelationshipException luiId equals relatedLuiId 
769      *         (why is this a contract failure?)
770      * @throws DataValidationErrorException supplied data is invalid
771      * @throws DoesNotExistException luiId, relatedLuiId, or
772      *         luiLuiRelationTypeKey is not found
773      * @throws InvalidParameterException luiLuiRelationInfo ro
774      *         contextInfo is not valid
775      * @throws MissingParameterException luiId, relatedLuiId,
776      *         luiLuiRelationTypeKey, luiLuiRelationInfo, or
777      *         contextInfo is missing or null
778      * @throws OperationFailedException  unable to complete request
779      * @throws PermissionDeniedException an authorization failure occurred
780      * @throws ReadOnlyException an attempt at supplying information
781      *         designated as read only
782      */
783     public LuiLuiRelationInfo createLuiLuiRelation(@WebParam(name = "luiId") String luiId,
784                                                    @WebParam(name = "relatedLuiId") String relatedLuiId,
785                                                    @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey,
786                                                    @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo,
787                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
788             throws DataValidationErrorException,
789             DoesNotExistException,
790             InvalidParameterException,
791             MissingParameterException,
792             OperationFailedException,
793             PermissionDeniedException,
794             ReadOnlyException;
795 
796     /**
797      * Updates an existing LuiLuiRelation. The LuiLuiRelation Id,
798      * luiId, relatedLuiId, and Meta information may not be changed.
799      *
800      * @param luiLuiRelationId the identifier for the LuiLuiRelation
801      *        to be updated
802      * @param luiLuiRelationInfo the new data for the LuiLuiRelation
803      * @param contextInfo information containing the principalId and
804      *        locale information about the caller of service operation
805      * @return the updated LuiLuiRelation
806      * @throws DataValidationErrorException supplied data is invalid
807      * @throws DoesNotExistException luiLuiRelationId is not found
808      * @throws InvalidParameterException luiLuiRelationInfo or contextInfo
809      *         is not valid
810      * @throws MissingParameterException luiLuiRelationId,
811      *         luiLuiRelationInfo, or contextInfo is missing or null
812      * @throws OperationFailedException unable to complete request
813      * @throws PermissionDeniedException an authorization failure occurred
814      * @throws ReadOnlyException an attempt at changing information
815      *         designated as read only
816      * @throws VersionMismatchException optimistic locking failure or
817      *         the action was attempted on an out of date version
818      */
819     public LuiLuiRelationInfo updateLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId,
820                                                    @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo,
821                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
822             throws DataValidationErrorException,
823             DoesNotExistException,
824             InvalidParameterException,
825             MissingParameterException,
826             OperationFailedException,
827             PermissionDeniedException,
828             ReadOnlyException,
829             VersionMismatchException;
830 
831     /**
832      * Deletes an existing LuiLuiRelation.
833      *
834      * @param luiLuiRelationId identifier or the LuiLuiRelation to be
835      *        deleted
836      * @param contextInfo information containing the principalId and
837      *        locale information about the caller of service operation
838      * @return the status of the delete operation. This must always be true.
839      * @throws DoesNotExistException luiLuiRelationId not found
840      * @throws InvalidParameterException contextInfo is not valid
841      * @throws MissingParameterException luiLuiRelationId
842      *         or contextInfo is missing or null
843      * @throws OperationFailedException unable to complete request
844      * @throws PermissionDeniedException an authorization failure occurred
845      */
846     public StatusInfo deleteLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId,
847                                            @WebParam(name = "contextInfo") ContextInfo contextInfo)
848             throws DoesNotExistException,
849             InvalidParameterException,
850             MissingParameterException,
851             OperationFailedException,
852             PermissionDeniedException;
853 
854     /**
855      * Retrieves a single LuiCapacity by a LuiCapacity Id.
856      *
857      * @param luiCapacityId the identifier for the LuiCapacity to be
858      *        retrieved
859      * @param contextInfo information containing the principalId and
860      *        locale information about the caller of service operation
861      * @return the LuiCapacity requested
862      * @throws DoesNotExistException luiCapacityId not found
863      * @throws InvalidParameterException contextInfo is not valid
864      * @throws MissingParameterException luiCapacityId or contextInfo
865      *         is missing or null
866      * @throws OperationFailedException unable to complete request
867      * @throws PermissionDeniedException an authorization failure occurred
868      */
869     public LuiCapacityInfo getLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId,
870                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
871             throws DoesNotExistException,
872             InvalidParameterException,
873             MissingParameterException,
874             OperationFailedException,
875             PermissionDeniedException;
876 
877     /**
878      * Retrieves a list of LuiCapacity from a list of LuiCapacity
879      * Ids. The returned list may be in any order and if duplicate Ids
880      * are supplied, a unique set may or may not be returned.
881      *
882      * @param luiCapacityIds a list of LuiCapacity identifiers
883      * @param contextInfo information containing the principalId and
884      *        locale information about the caller of service operation
885      * @return a list of LuiCapacities
886      * @throws DoesNotExistException a luiCapacityId in the list was
887      *         not found
888      * @throws InvalidParameterException contextInfo is not valid
889      * @throws MissingParameterException luiCapacityIds, an Id in
890      *         luiCapacityIds, or contextInfo is missing or null
891      * @throws OperationFailedException unable to complete request
892      * @throws PermissionDeniedException an authorization failure occurred
893      */
894     public List<LuiCapacityInfo> getLuiCapacitiesByIds(@WebParam(name = "luiCapacityIds") List<String> luiCapacityIds,
895                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
896             throws DoesNotExistException,
897             InvalidParameterException,
898             MissingParameterException,
899             OperationFailedException,
900             PermissionDeniedException;
901 
902     /**
903      * Retrieves a list of LuiCapacity Ids by LuiCapacity Type.
904      *
905      * @param luiCapacityTypeKey a unique identifier for a LuiCapacity Type
906      * @param contextInfo information containing the principalId and
907      *        locale information about the caller of service operation
908      * @return information about a list of Lui Capacities
909      * @throws InvalidParameterException contextInfo is not valid
910      * @throws MissingParameterException luiCapacityTypeKey or
911      *         contextInfo is missing or null
912      * @throws OperationFailedException unable to complete request
913      * @throws PermissionDeniedException an authorization failure occurred
914      */
915     public List<String> getLuiCapacityIdsByType(@WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey,
916                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
917             throws InvalidParameterException,
918             MissingParameterException,
919             OperationFailedException,
920             PermissionDeniedException;
921 
922     /**
923      * Retrieves LuiCapacities associated with a Lui.
924      *
925      * @param luiId a unique identifier for a Lui
926      * @param contextInfo information containing the principalId and
927      *        locale information about the caller of service operation
928      * @return a list of LuiCapacities associated with the given Lui
929      * @throws InvalidParameterException contextInfo is not valid
930      * @throws MissingParameterException luiId or contextInfo is
931      *         missing or null
932      * @throws OperationFailedException unable to complete request
933      * @throws PermissionDeniedException an authorization failure occurred
934      */
935     public List<LuiCapacityInfo> getLuiCapacitiesByLui(@WebParam(name = "luiId") String luiId,
936                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
937             throws InvalidParameterException,
938             MissingParameterException,
939             OperationFailedException,
940             PermissionDeniedException;
941 
942     /**
943      * Searches for LuiCapacities that meet the search criteria and
944      * returns a list of LuiCapacity identifiers that meet the
945      * criteria.
946      *
947      * @param criteria the search criteria
948      * @param contextInfo information containing the principalId and
949      *        locale information about the caller of service operation
950      * @return list of LuiCapacity Ids
951      * @throws InvalidParameterException criteria or contextInfo is
952      *         not valid
953      * @throws MissingParameterException criteria or contextInfo is
954      *         missing or null
955      * @throws OperationFailedException unable to complete request
956      * @throws PermissionDeniedException an authorization failure occurred
957      */
958     public List<String> searchForLuiCapacityIds(@WebParam(name = "criteria") QueryByCriteria criteria,
959                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
960             throws InvalidParameterException,
961             MissingParameterException,
962             OperationFailedException,
963             PermissionDeniedException;
964 
965     /**
966      * Searches for LuiCapacities that meet the search criteria and
967      * returns a list of LuiCapacities that meet the criteria.
968      *
969      * @param criteria the search criteria
970      * @param contextInfo information containing the principalId and
971      *        locale information about the caller of service operation
972      * @return list of LuiCapacitiess
973      * @throws InvalidParameterException criteria or contextInfo is
974      *         not valid
975      * @throws MissingParameterException criteria or contextInfo is
976      *         missing or null
977      * @throws OperationFailedException unable to complete request
978      * @throws PermissionDeniedException an authorization failure occurred
979      */
980     public List<LuiCapacityInfo> searchForLuiCapacities(@WebParam(name = "criteria") QueryByCriteria criteria,
981                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
982             throws InvalidParameterException,
983             MissingParameterException,
984             OperationFailedException,
985             PermissionDeniedException;
986 
987     /**
988      *  Validates a LuiCapacity. Depending on the value of
989      *  validationType, this validation could be limited to tests on
990      *  just the current LuiCapacity and its directly contained
991      *  sub-objects or expanded to perform all tests related to this
992      *  LuiCapacity. If an identifier is present for the LuiCapacity
993      *  (and/or one of its contained sub-objects) and a record is
994      *  found for that identifier, the validation checks if the
995      *  LuiCpacity can be updated to the new values. If an identifier
996      *  is not present or a record does not exist, the validation
997      *  checks if the object with the given data can be created.
998      *
999      * @param validationTypeKey the identifier for the validation Type
1000      * @param luiCapacityInfo the LuiCapacity to be validated
1001      * @param contextInfo information containing the principalId and
1002      *        locale information about the caller of service operation
1003      * @return a list of validation results or an empty list if validation succeeded
1004      * @throws DoesNotExistException validationTypeKey or
1005      *        luiCapacityTypeKey not found
1006      * @throws InvalidParameterException luiInfo or contextInfo is not
1007      *         valid
1008      * @throws MissingParameterException validationTypeKey, luiInfo,
1009      *         or contextInfo is missing or null
1010      * @throws PermissionDeniedException an authorization failure occurred
1011      */
1012     public List<ValidationResultInfo> validateLuiCapacity(@WebParam(name = "validationTypeKey") String validationTypeKey,
1013                                                           @WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey,
1014                                                           @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo,
1015                                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
1016             throws DoesNotExistException,
1017             InvalidParameterException,
1018             MissingParameterException,
1019             OperationFailedException,
1020             PermissionDeniedException;
1021 
1022     /**
1023      * Creates a new LuiCapacity. The LuiCapacity Id, Type, and Meta
1024      * information may not be set in the supplied data.
1025      *
1026      * @param luiCapacityTypeKey an identifier for the Type of the new
1027      *        LuiCapacity
1028      * @param luiCapacityInfo the data with which to create the
1029      *        LuiCapacity
1030      * @param contextInfo information containing the principalId and
1031      *        locale information about the caller of service operation
1032      * @return the new LuiCapacity
1033      * @throws DataValidationErrorException supplied data is invalid
1034      * @throws DoesNotExistException luiCapacityTypeKey not found
1035      * @throws InvalidParameterException luiCapacityInfo or
1036      *         contextInfo is not valid
1037      * @throws MissingParameterException luiCapacityTypeKey,
1038      *         luiCapacityInfo, or contextInfo is missing or null
1039      * @throws OperationFailedException unable to complete request
1040      * @throws PermissionDeniedException an authorization failure occurred
1041      * @throws ReadOnlyException an attempt at supplying information
1042      *         designated as read only
1043      */
1044     public LuiCapacityInfo createLuiCapacity(@WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey,
1045                                              @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo,
1046                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
1047             throws DataValidationErrorException,
1048             DoesNotExistException,
1049             InvalidParameterException,
1050             MissingParameterException,
1051             OperationFailedException,
1052             PermissionDeniedException,
1053             ReadOnlyException;
1054 
1055     /**
1056      * Updates an existing LuiCapacity. The LuiCapacity Id, Type, and
1057      * Meta information may not be changed.
1058      *
1059      * @param luiCapacityId the identifier for the LuiCapacity to be
1060      *        updated
1061      * @param luiCapacityInfo the new data for the LuiCapacity
1062      * @param contextInfo information containing the principalId and
1063      *        locale information about the caller of service operation
1064      * @return the updated LuiCapacity
1065      * @throws DataValidationErrorException supplied data is invalid
1066      * @throws DoesNotExistException luiCapacityId not found
1067      * @throws InvalidParameterException luiCapacityInfo or contextInfo
1068      *         is not valid
1069      * @throws MissingParameterException luiCapacityId,
1070      *         luiCapacityInfo, or contextInfo is missing or null
1071      * @throws OperationFailedException unable to complete request
1072      * @throws PermissionDeniedException an authorization failure occurred
1073      * @throws ReadOnlyException an attempt at changing information
1074      *         designated as read only
1075      * @throws VersionMismatchException optimistic locking failure or
1076      *         the action was attempted on an out of date version
1077      */
1078     public LuiCapacityInfo updateLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId,
1079                                              @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo,
1080                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
1081             throws DataValidationErrorException,
1082             DoesNotExistException,
1083             InvalidParameterException,
1084             MissingParameterException,
1085             OperationFailedException,
1086             PermissionDeniedException,
1087             ReadOnlyException,
1088             VersionMismatchException;
1089 
1090     /**
1091      * Deletes an existing LuiCapacity.
1092      *
1093      * @param luiCapacityId the identifier for the LuiCapacity to be
1094      *        deleted
1095      * @param contextInfo information containing the principalId and
1096      *        locale information about the caller of service operation
1097      * @return the status of the delete operation. This must always be
1098      *         true.
1099      * @throws DoesNotExistException luiCapacityId not found
1100      * @throws InvalidParameterException contextInfo is invalid
1101      * @throws MissingParameterException luiCapacityId or contextInfo
1102      *         is missing or null
1103      * @throws OperationFailedException unable to complete request
1104      * @throws PermissionDeniedException an authorization failure occurred
1105      */
1106     public StatusInfo deleteLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId,
1107                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
1108             throws DoesNotExistException,
1109             InvalidParameterException,
1110             MissingParameterException,
1111             OperationFailedException,
1112             PermissionDeniedException;
1113 
1114     /**
1115      * Retrieves information on a Lui set.
1116      *
1117      * @param luiSetId    Identifier of the Lui set
1118      * @param contextInfo Context information containing the principalId and
1119      *                    locale information about the caller of service
1120      *                    operation
1121      * @return The retrieved Lui set information
1122      * @throws DoesNotExistException     LuiSetId not found
1123      * @throws InvalidParameterException invalid contextInfo
1124      * @throws MissingParameterException missing LuiSetId or contextInfo
1125      * @throws OperationFailedException  unable to complete request
1126      * @throws PermissionDeniedException authorization failure
1127      */
1128     public LuiSetInfo getLuiSet(@WebParam(name = "luiSetId") String luiSetId,
1129                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
1130             throws DoesNotExistException,
1131             InvalidParameterException,
1132             MissingParameterException,
1133             OperationFailedException,
1134             PermissionDeniedException;
1135 
1136     /**
1137      * Retrieve information on Lui sets from a list of LuiSet Ids.
1138      *
1139      * @param luiSetIds   List of identifiers of Lui sets
1140      * @param contextInfo Context information containing the principalId and
1141      *                    locale information about the caller of service
1142      *                    operation
1143      * @return The retrieved list of Lui set information
1144      * @throws DoesNotExistException     One or more LuiSets not found
1145      * @throws InvalidParameterException invalid contextInfo
1146      * @throws MissingParameterException missing LuiSetIds or contextInfo
1147      * @throws OperationFailedException  unable to complete request
1148      * @throws PermissionDeniedException authorization failure
1149      */
1150     public List<LuiSetInfo> getLuiSetsByIds(@WebParam(name = "luiSetIds") List<String> luiSetIds,
1151                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
1152             throws DoesNotExistException,
1153             InvalidParameterException,
1154             MissingParameterException,
1155             OperationFailedException,
1156             PermissionDeniedException;
1157 
1158 
1159     /**
1160      * Given a Lui, retrieves the LuiSets that it belongs to.
1161      *
1162      * @param luiId         the identifier for the Lui
1163      * @param contextInfo   Context information containing the principalId and
1164      *                      locale information about the caller of service
1165      *                      operation
1166      * @return The retrieved list of LuiSets that the Lui with specified luiId belongs to (or an empty list if the Lui isn't found)
1167      * @throws InvalidParameterException invalid contextInfo
1168      * @throws MissingParameterException missing luiId or contextInfo
1169      * @throws OperationFailedException  unable to complete request
1170      * @throws PermissionDeniedException authorization failure
1171      */
1172     public List<LuiSetInfo> getLuiSetsByLui(@WebParam(name = "luiId") String luiId,
1173                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
1174             throws InvalidParameterException,
1175             MissingParameterException,
1176             OperationFailedException,
1177             PermissionDeniedException;
1178 
1179     /**
1180      * Retrieves the list of Lui Identifiers within a Lui Set.
1181      *
1182      * @param luiSetId    Identifier of the Lui set
1183      * @param contextInfo Context information containing the principalId and
1184      *                    locale information about the caller of service
1185      *                    operation
1186      * @return The retrieved list of Lui Ids within the specified Lui set
1187      * @throws DoesNotExistException     LuiSetId not found
1188      * @throws InvalidParameterException invalid contextInfo
1189      * @throws MissingParameterException missing LuiSetId or contextInfo
1190      * @throws OperationFailedException  unable to complete request
1191      * @throws PermissionDeniedException authorization failure
1192      */
1193     public List<String> getLuiIdsFromLuiSet(@WebParam(name = "luiSetId") String luiSetId,
1194                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
1195             throws DoesNotExistException,
1196             InvalidParameterException,
1197             MissingParameterException,
1198             OperationFailedException,
1199             PermissionDeniedException;
1200 
1201     /**
1202      * Retrieves a list of LuiSet Ids by Lui Type.
1203      *
1204      * @param luiSetTypeKey type of the Lui set to be created
1205      * @param contextInfo information containing the principalId and
1206      *        locale information about the caller of service operation
1207      * @return a list of Lui identifiers matching luiTypeKey or an
1208      *         empty list if none found
1209      * @throws InvalidParameterException contextInfo is not valid
1210      * @throws MissingParameterException luiTypeKey or contextInfo is
1211      *         missing or null
1212      * @throws OperationFailedException unable to complete request
1213      * @throws PermissionDeniedException an authorization failure occurred
1214      */
1215     public List<String> getLuiSetIdsByType(@WebParam(name = "luiSetTypeKey") String luiSetTypeKey,
1216                                            @WebParam(name = "contextInfo") ContextInfo contextInfo)
1217             throws InvalidParameterException,
1218             MissingParameterException,
1219             OperationFailedException,
1220             PermissionDeniedException;
1221 
1222 
1223     /**
1224      * Validates information about a Lui set. Depending on the value of
1225      * validationTypeKey, this validation could be limited to tests on just the
1226      * current object and its directly contained sub-objects or expanded to
1227      * perform all tests related to this object. If an identifier is present for
1228      * the Lui set (and/or one of its contained sub-objects) and a record is
1229      * found for that identifier, the validation checks if the Lui set can be
1230      * shifted to the new values. If an identifier is not present or a record
1231      * cannot be found for the identifier, it is assumed that the record does
1232      * not exist and as such, the checks performed will be much shallower,
1233      * typically mimicking those performed by setting the validationType to the
1234      * current object.
1235      *
1236      * @param validationTypeKey identifier of the extent of validation
1237      * @param luiSetTypeKey     type of the Lui set to be created
1238      * @param LuiSetInfo        Lui set information to be tested.
1239      * @param contextInfo       Context information containing the principalId
1240      *                          and locale information about the caller of
1241      *                          service operation
1242      * @return results from performing the validation
1243      * @throws DoesNotExistException     validationTypeKey or LuiSetTypeKey not
1244      *                                   found
1245      * @throws InvalidParameterException invalid LuiSetInfo or contextInfo
1246      * @throws MissingParameterException missing validationTypeKey, LuiSetTypeKey,
1247      *                                   LuiSetInfo or contextInfo
1248      * @throws OperationFailedException  unable to complete request
1249      * @throws PermissionDeniedException authorization failure
1250      */
1251     public List<ValidationResultInfo> validateLuiSet(@WebParam(name = "validationTypeKey") String validationTypeKey,
1252                                                      @WebParam(name = "luiSetTypeKey") String luiSetTypeKey,
1253                                                      @WebParam(name = "LuiSetInfo") LuiSetInfo LuiSetInfo,
1254                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo)
1255             throws DoesNotExistException,
1256             InvalidParameterException,
1257             MissingParameterException,
1258             OperationFailedException,
1259             PermissionDeniedException;
1260 
1261     /**
1262      * Creates a Lui set.
1263      *
1264      * @param luiSetTypeKey type of the Lui set to be created
1265      * @param luiSetInfo    information required to create a Lui set
1266      * @param contextInfo   Context information containing the principalId and
1267      *                      locale information about the caller of service
1268      *                      operation
1269      * @return the created Lui set information
1270      * @throws DataValidationErrorException data validation error
1271      * @throws DoesNotExistException        LuiSetTypeKey not found
1272      * @throws InvalidParameterException    invalid LuiSetInfo or contextInfo
1273      * @throws MissingParameterException    missing LuiSetTypeKey, LuiSetInfo or
1274      *                                      contextInfo
1275      * @throws OperationFailedException     unable to complete request
1276      * @throws PermissionDeniedException    authorization failure
1277      * @throws ReadOnlyException            an attempt at supplying information
1278      *                                      designated as read only
1279      * @throws UnsupportedActionException   Lui set need to be static or dynamic
1280      *                                      but not both
1281      */
1282     public LuiSetInfo createLuiSet(@WebParam(name = "luiSetTypeKey") String luiSetTypeKey,
1283                                    @WebParam(name = "luiSetInfo") LuiSetInfo luiSetInfo,
1284                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
1285             throws DataValidationErrorException,
1286             DoesNotExistException,
1287             InvalidParameterException,
1288             MissingParameterException,
1289             OperationFailedException,
1290             PermissionDeniedException,
1291             ReadOnlyException,
1292             UnsupportedActionException;
1293 
1294     /**
1295      * Update the information for a Lui set
1296      *
1297      * @param luiSetId    identifier of the Lui set to be updated
1298      * @param luiSetInfo  updated information about the Lui set
1299      * @param contextInfo Context information containing the principalId and
1300      *                    locale information about the caller of service
1301      *                    operation
1302      * @return the updated Lui set information
1303      * @throws CircularRelationshipException added LuiSetId cannot be added to
1304      *                                       the LuiSetInfo
1305      * @throws DataValidationErrorException  data validation error
1306      * @throws DoesNotExistException         LuiSetId not found
1307      * @throws InvalidParameterException     invalid LuiSetInfo or contextInfo
1308      * @throws MissingParameterException     missing LuiSetId, LuiSetInfo or
1309      *                                       contextInfo
1310      * @throws OperationFailedException      unable to complete request
1311      * @throws PermissionDeniedException     authorization failure
1312      * @throws ReadOnlyException             an attempt at supplying information
1313      *                                       designated as read only
1314      * @throws UnsupportedActionException    Lui set need to be static or
1315      *                                       dynamic but not both
1316      * @throws VersionMismatchException      an optimistic locking failure or
1317      *                                       the action was attempted on an out
1318      *                                       of date version
1319      */
1320     public LuiSetInfo updateLuiSet(@WebParam(name = "luiSetId") String luiSetId,
1321                                    @WebParam(name = "luiSetInfo") LuiSetInfo luiSetInfo,
1322                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
1323             throws CircularRelationshipException,
1324             DataValidationErrorException,
1325             DoesNotExistException,
1326             InvalidParameterException,
1327             MissingParameterException,
1328             OperationFailedException,
1329             PermissionDeniedException,
1330             ReadOnlyException,
1331             UnsupportedActionException,
1332             VersionMismatchException;
1333 
1334     /**
1335      * Delete a Lui set
1336      *
1337      * @param luiSetId    identifier of the Lui set to be deleted
1338      * @param contextInfo Context information containing the principalId and
1339      *                    locale information about the caller of service
1340      *                    operation
1341      * @return status of the operation (success or failure)
1342      * @throws DoesNotExistException     LuiSetId not found
1343      * @throws InvalidParameterException invalid contextInfo
1344      * @throws MissingParameterException missing LuiSetId or contextInfo
1345      * @throws OperationFailedException  unable to complete request
1346      * @throws PermissionDeniedException authorization failure
1347      */
1348     public StatusInfo deleteLuiSet(@WebParam(name = "luiSetId") String luiSetId,
1349                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
1350             throws DoesNotExistException,
1351             InvalidParameterException,
1352             MissingParameterException,
1353             OperationFailedException,
1354             PermissionDeniedException;
1355 }