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
13   * implied.  See the License for the specific language governing
14   * permissions and limitations under the License.
15   */
16  
17  package org.kuali.student.enrollment.courseoffering.service;
18  
19  import org.kuali.rice.core.api.criteria.QueryByCriteria;
20  import org.kuali.student.enrollment.courseoffering.dto.AOClusterVerifyResultsInfo;
21  import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingClusterInfo;
22  import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingDisplayInfo;
23  import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingInfo;
24  import org.kuali.student.enrollment.courseoffering.dto.CourseOfferingDisplayInfo;
25  import org.kuali.student.enrollment.courseoffering.dto.CourseOfferingInfo;
26  import org.kuali.student.enrollment.courseoffering.dto.FormatOfferingInfo;
27  import org.kuali.student.enrollment.courseoffering.dto.RegistrationGroupInfo;
28  import org.kuali.student.enrollment.courseoffering.dto.SeatPoolDefinitionInfo;
29  import org.kuali.student.enrollment.courseofferingset.dto.SocRolloverResultItemInfo;
30  import org.kuali.student.r2.common.dto.BulkStatusInfo;
31  import org.kuali.student.r2.common.dto.ContextInfo;
32  import org.kuali.student.r2.common.dto.StatusInfo;
33  import org.kuali.student.r2.common.dto.TimeOfDayInfo;
34  import org.kuali.student.r2.common.dto.ValidationResultInfo;
35  import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
36  import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
37  import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
38  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
39  import org.kuali.student.r2.common.exceptions.InvalidParameterException;
40  import org.kuali.student.r2.common.exceptions.MissingParameterException;
41  import org.kuali.student.r2.common.exceptions.OperationFailedException;
42  import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
43  import org.kuali.student.r2.common.exceptions.ReadOnlyException;
44  import org.kuali.student.r2.common.exceptions.VersionMismatchException;
45  import org.kuali.student.r2.common.util.constants.CourseOfferingServiceConstants;
46  import org.kuali.student.r2.core.class1.type.dto.TypeInfo;
47  import org.kuali.student.r2.core.scheduling.dto.TimeSlotInfo;
48  
49  import javax.jws.WebParam;
50  import javax.jws.WebService;
51  import javax.jws.soap.SOAPBinding;
52  import java.util.List;
53  
54  /**
55   * Course Offering is a class II service supporting the process of offering
56   * courses for student registration.
57   * <p/>
58   * Courses are offered for a specific term which is associated with a specific
59   * Academic Calendar. At the canonical level a course is defined by formats for
60   * which the course will be offered. Each format describes the activity types
61   * that comprise that format, e.g., lecture and lab.
62   * <p/>
63   * The purpose of multiple formats is to support different formats based on a
64   * term type, e.g., Fall versus Spring offering, or to offer multiple formats in
65   * the same term, e.g., in person (traditional) versus online. Offering a course
66   * is the process of creating specific instances of the course, and for each
67   * format to be offered in the selected term, creating a specified number of
68   * each activity type that comprises the format, e.g. five (5) lectures and ten
69   * (10) labs of Biology 101.
70   * <p/>
71   * Individual activity offerings correspond to events in a scheduling system,
72   * each with a meeting pattern. The term 'section' varies by institution, but
73   * refers to either the individual activity offering, or it refers to the
74   * combination of activity offerings, when the course has more than one activity
75   * type, that the student registers in as part of that course.
76   * <p/>
77   * To avoid confusion, this service introduces a new entity to capture the
78   * second definition of section. A registration group represents a valid
79   * combination of activity offerings, even if the number is one, in which a
80   * student registers. The design supports unrestricted matching, e.g., any
81   * lecture with any lab, as well as specific matching, e.g., lecture 1 with lab
82   * A or B, and lecture 2 with lab C or D.
83   * <p/>
84   * @version: 0.0.7
85   *
86   * @author Kuali Student Team (Kamal)
87   */
88  
89  @WebService(name = "CourseOfferingService", serviceName = "CourseOfferingService", portName = "CourseOfferingService", targetNamespace = CourseOfferingServiceConstants.NAMESPACE)
90  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
91  
92  public interface CourseOfferingService
93          extends CourseOfferingServiceBusinessLogic {
94  
95  
96      /**
97       * This method returns the TypeInfo for a given course offering type key.
98       *
99       * @param courseOfferingTypeKey the unique identifier for the type
100      * @param contextInfo           information containing the principalId and
101      *                              locale information about the caller of
102      *                              service operation
103      * @return the type requested
104      * @throws DoesNotExistException     courseOfferingTypeKey is not found
105      * @throws InvalidParameterException contextInfo is not valid
106      * @throws MissingParameterException courseOfferingTypeKey or contextInfo is
107      *                                   missing or null
108      * @throws OperationFailedException  unable to complete request
109      * @throws PermissionDeniedException an authorization failure occurred
110      */
111     public TypeInfo getCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey,
112                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
113             throws DoesNotExistException,
114             InvalidParameterException,
115             MissingParameterException,
116             OperationFailedException,
117             PermissionDeniedException;
118 
119     /**
120      * This method returns the valid course offering types.
121      *
122      * @param contextInfo information containing the principalId and locale
123      *                    information about the caller of service operation
124      * @return a list of valid CourseOffering Types
125      * @throws InvalidParameterException contextInfo is not valid
126      * @throws MissingParameterException contextInfo is missing or null
127      * @throws OperationFailedException  unable to complete request
128      * @throws PermissionDeniedException an authorization failure occurred
129      */
130     public List<TypeInfo> getCourseOfferingTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo)
131             throws InvalidParameterException,
132             MissingParameterException,
133             OperationFailedException,
134             PermissionDeniedException;
135 
136     /**
137      * This method returns the valid instructor (LPR) types for a CourseOffering
138      * type.
139      *
140      * @param courseOfferingTypeKey a unqiue identifier for a CourseOffering
141      *                              type
142      * @param contextInfo           information containing the principalId and
143      *                              locale information about the caller of
144      *                              service operation
145      * @return a list of valid instructor types
146      * @throws DoesNotExistException     deprecated
147      * @throws InvalidParameterException contextInfo is not valid
148      * @throws MissingParameterException courseOfferingTypeKey or contextInfo is
149      *                                   missing or null
150      * @throws OperationFailedException  unable to complete request
151      * @throws PermissionDeniedException an authorization failure occurred
152      */
153     public List<TypeInfo> getInstructorTypesForCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey,
154                                                                   @WebParam(name = "contextInfo") ContextInfo contextInfo)
155             throws DoesNotExistException,
156             InvalidParameterException,
157             MissingParameterException,
158             OperationFailedException,
159             PermissionDeniedException;
160 
161     /**
162      * Retrieves a single CourseOffering by a CourseOffering Id.
163      *
164      * @param courseOfferingId the identifier for the CourseOffering to be
165      *                         retrieved
166      * @param contextInfo      information containing the principalId and locale
167      *                         information about the caller of service
168      *                         operation
169      * @throws DoesNotExistException     courseOfferingId is not found
170      * @throws InvalidParameterException contextInfo is not valid
171      * @throws MissingParameterException courseOfferingId or contextInfo is
172      *                                   missing or null
173      * @throws OperationFailedException  unable to complete request
174      * @throws PermissionDeniedException an authorization failure occurred
175      */
176     public CourseOfferingInfo getCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId,
177                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
178             throws DoesNotExistException,
179             InvalidParameterException,
180             MissingParameterException,
181             OperationFailedException,
182             PermissionDeniedException;
183 
184     /**
185      * Retrieves a single CourseOfferingDisplayInfo by a CourseOffering Id.
186      *
187      * @param courseOfferingId an identifier for a CourseOffering
188      * @param contextInfo      information containing the principalId and locale
189      *                         information about the caller of service
190      *                         operation
191      * @return the CourseOfferingDisplay requested
192      * @throws DoesNotExistException     courseOfferingId does not exist
193      * @throws InvalidParameterException contextInfo is not valid
194      * @throws MissingParameterException courseOfferingId or contextInfo is
195      *                                   missing or null
196      * @throws OperationFailedException  unable to complete request
197      * @throws PermissionDeniedException an authorization failure occurred
198      */
199     public CourseOfferingDisplayInfo getCourseOfferingDisplay(@WebParam(name = "courseOfferingId") String courseOfferingId,
200                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
201             throws DoesNotExistException,
202             InvalidParameterException,
203             MissingParameterException,
204             OperationFailedException,
205             PermissionDeniedException;
206 
207     /**
208      * Retrieves a list of CourseOfferings from a list of CourseOffering Ids.
209      * The returned list may be in any order and if duplicate Ids are supplied,
210      * a unique set may or may not be returned.
211      *
212      * @param courseOfferingIds a list of CourseOffering identifiers
213      * @param contextInfo       information containing the principalId and
214      *                          locale information about the caller of service
215      *                          operation
216      * @throws DoesNotExistException     a courseOfferingId in the list is not
217      *                                   found
218      * @throws InvalidParameterException contextInfo is not valid
219      * @throws MissingParameterException courseOfferingIds, an Id in the
220      *                                   courseOfferingIds, or contextInfo is
221      *                                   missing or null
222      * @throws OperationFailedException  unable to complete request
223      * @throws PermissionDeniedException an authorization failure occurred
224      */
225     public List<CourseOfferingInfo> getCourseOfferingsByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds,
226                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
227             throws DoesNotExistException,
228             InvalidParameterException,
229             MissingParameterException,
230             OperationFailedException,
231             PermissionDeniedException;
232 
233     /**
234      * Retrieve a list of CourseOfferingDisplays corresponding to a list of
235      * CourseOfferingIds. The returned list may be in any order and if duplicate
236      * Ids are supplied, a unique set may or may not be returned.
237      *
238      * @param courseOfferingIds a list of CourseOffering identifiers
239      * @param contextInfo       information containing the principalId and
240      *                          locale information about the caller of service
241      *                          operation
242      * @return a list of CourseOfferingDisplays
243      * @throws DoesNotExistException     a courseOfferingId in the list not
244      *                                   found
245      * @throws InvalidParameterException contextInfo is not valid
246      * @throws MissingParameterException courseOfferingIds, an Id in
247      *                                   courseOfferingIds, or contextInfo is
248      *                                   missing or null
249      * @throws OperationFailedException  unable to complete request
250      * @throws PermissionDeniedException an authorization failure occurred
251      */
252     public List<CourseOfferingDisplayInfo> getCourseOfferingDisplaysByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds,
253                                                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
254             throws DoesNotExistException,
255             InvalidParameterException,
256             MissingParameterException,
257             OperationFailedException,
258             PermissionDeniedException;
259 
260     /**
261      * Retrieve a list of CourseOffering Ids by CourseOffering Type.
262      *
263      * @param courseOfferingTypeKey the identifier for a CourseOffering Type
264      * @param contextInfo           information containing the principalId and
265      *                              locale information about the caller of
266      *                              service operation
267      * @return a list of CourseOffering identifiers matching
268      *         courseOfferingTypeKey or an empty list if none found
269      * @throws DoesNotExistException     deprecated
270      * @throws InvalidParameterException contextInfo is not valid
271      * @throws MissingParameterException courseOfferingTypeKey or contextInfo is
272      *                                   missing or null
273      * @throws OperationFailedException  unable to complete request
274      * @throws PermissionDeniedException an authorization failure occurred
275      */
276     public List<String> getCourseOfferingIdsByType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey,
277                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
278             throws DoesNotExistException,
279             InvalidParameterException,
280             MissingParameterException,
281             OperationFailedException,
282             PermissionDeniedException;
283 
284     /**
285      * Retrieve CourseOfferings by canonical Course Id across all Terms.
286      *
287      * @param courseId    the identifier for a Course
288      * @param contextInfo information containing the principalId and locale
289      *                    information about the caller of service operation
290      * @return a list of CourseOfferings of the given Course or an empty list if
291      *         none found
292      * @throws DoesNotExistException     courseId is not found
293      * @throws InvalidParameterException contextInfo is not valid
294      * @throws MissingParameterException courseId orcontextInfo is missing or
295      *                                   null
296      * @throws OperationFailedException  unable to complete request
297      * @throws PermissionDeniedException an authorization failure occurred
298      */
299     public List<CourseOfferingInfo> getCourseOfferingsByCourse(@WebParam(name = "courseId") String courseId,
300                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo)
301             throws DoesNotExistException,
302             InvalidParameterException,
303             MissingParameterException,
304             OperationFailedException,
305             PermissionDeniedException;
306 
307     /**
308      * Retrieve a list of CourseOfferings by canonical Course Id and Term. There
309      * may be more than one CourseOffering for a Course in a single Term.
310      *
311      * @param courseId    the identifier for a Course
312      * @param termId      the identifier for a Term
313      * @param contextInfo information containing the principalId and locale
314      *                    information about the caller of service operation
315      * @return a list of CourseOfferings of the given Course offered in the
316      *         given Term or an empty list if none found
317      * @throws DoesNotExistException     courseId is not found
318      * @throws InvalidParameterException contextInfo is not valid
319      * @throws MissingParameterException courseId, termId, or contextInfo is
320      *                                   missing or null
321      * @throws OperationFailedException  unable to complete request
322      * @throws PermissionDeniedException an authorization failure occured
323      */
324     public List<CourseOfferingInfo> getCourseOfferingsByCourseAndTerm(@WebParam(name = "courseId") String courseId,
325                                                                       @WebParam(name = "termId") String termId,
326                                                                       @WebParam(name = "contextInfo") ContextInfo contextInfo)
327             throws DoesNotExistException,
328             InvalidParameterException,
329             MissingParameterException,
330             OperationFailedException,
331             PermissionDeniedException;
332 
333     /**
334      * Retrieves a list of CourseOffering Ids for CourseOfferings offered in a
335      * given term. If useIncludedTerms is true, then include any CourseOfferings
336      * offered within child Terms of the given Term.
337      *
338      * @param termId          the identifier for a Term
339      * @param useIncludedTerm true to include CourseOfferings of child Terms of
340      *                        the given Term, false to include only
341      *                        CourseOfferings offered in the given Term
342      * @param contextInfo     information containing the principalId and locale
343      *                        information about the caller of service operation
344      * @return the list of CourseOffering Ids offered in the given Term or an
345      *         empty list if none found
346      * @throws DoesNotExistException     deprecated
347      * @throws InvalidParameterException contextInfo is not valid
348      * @throws MissingParameterException termId or contextInfo is missing or
349      *                                   null
350      * @throws OperationFailedException  unable to complete request
351      * @throws PermissionDeniedException an authorization failure occurred
352      */
353     public List<String> getCourseOfferingIdsByTerm(@WebParam(name = "termId") String termId,
354                                                    @WebParam(name = "useIncludedTerm") Boolean useIncludedTerm,
355                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
356             throws DoesNotExistException,
357             InvalidParameterException,
358             MissingParameterException,
359             OperationFailedException,
360             PermissionDeniedException;
361 
362     /**
363      * Retrieve a list of CourseOffering Ids for CourseOfferings of a given
364      * subject area offered in the given Term.
365      * <p/>
366      * A CourseOffering will have an official and "other" subject areas>
367      * CourseOfferrings with either official or other subject area that match
368      * are returned.
369      *
370      * @param termId      the identifier for a Term
371      * @param subjectArea a subject area
372      * @param contextInfo information containing the principalId and locale
373      *                    information about the caller of service operation
374      * @return a list of CourseOffering Ids for CourseOfferings matching the
375      *         give subject area and offered in the given Term or an empty list
376      *         if none found
377      * @throws DoesNotExistException     deprecated
378      * @throws InvalidParameterException contextInfo is not valid
379      * @throws MissingParameterException termId, subjectArea, or contextInfo is
380      *                                   missing or null
381      * @throws OperationFailedException  unable to complete request
382      * @throws PermissionDeniedException an authorization failure occurred
383      */
384     public List<String> getCourseOfferingIdsByTermAndSubjectArea(@WebParam(name = "termId") String termId,
385                                                                  @WebParam(name = "subjectArea") String subjectArea,
386                                                                  @WebParam(name = "contextInfo") ContextInfo contextInfo)
387             throws DoesNotExistException,
388             InvalidParameterException,
389             MissingParameterException,
390             OperationFailedException,
391             PermissionDeniedException;
392 
393     /**
394      * Retrieves a list of CourseOfferings for a given Term and Instructor.
395      *
396      * @param termId       the identifier for a Term
397      * @param instructorId the Person Id for an instructor
398      * @param contextInfo  information containing the principalId and locale
399      *                     information about the caller of service operation
400      * @return a list of CourseOfferings for the given Term and instructor or an
401      *         empty list if none found
402      * @throws DoesNotExistException     deprecated
403      * @throws InvalidParameterException contextInfo is not valid
404      * @throws MissingParameterException termId, instructorId, or contextInfo is
405      *                                   missing or null
406      * @throws OperationFailedException  unable to complete request
407      * @throws PermissionDeniedException an authorization failure occurred
408      */
409     public List<CourseOfferingInfo> getCourseOfferingsByTermAndInstructor(@WebParam(name = "termId") String termId,
410                                                                           @WebParam(name = "instructorId") String instructorId,
411                                                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
412             throws DoesNotExistException,
413             InvalidParameterException,
414             MissingParameterException,
415             OperationFailedException,
416             PermissionDeniedException;
417 
418     /**
419      * Retrieves a list of CourseOffering Ids for CourseOfferings offered in a
420      * given Term by a units content owner.
421      *
422      * @param termId              the identifier for a Term
423      * @param unitsContentOwnerId the Org Id of the units content owner
424      * @param contextInfo         information containing the principalId and
425      *                            locale information about the caller of service
426      *                            operation
427      * @return a list of CourseOffering Ids for CourseOfferings offered in the
428      *         given Term by the given Org
429      * @throws DoesNotExistException     deprecated
430      * @throws InvalidParameterException contextInfo is not valid
431      * @throws MissingParameterException termId, unisContentOwnerId, or
432      *                                   contextInfo is missing or null
433      * @throws OperationFailedException  unable to complete request
434      * @throws PermissionDeniedException an authorization failure occurred
435      */
436     public List<String> getCourseOfferingIdsByTermAndUnitsContentOwner(@WebParam(name = "termId") String termId,
437                                                                        @WebParam(name = "unitsContentOwnerId") String unitsContentOwnerId,
438                                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
439             throws DoesNotExistException,
440             InvalidParameterException,
441             MissingParameterException,
442             OperationFailedException,
443             PermissionDeniedException;
444 
445     /**
446      * Searches for CourseOfferings that meet the given search criteria.
447      *
448      * @param criteria    the search criteria
449      * @param contextInfo information containing the principalId and locale
450      *                    information about the caller of service operation
451      * @return a list of CourseOffering Ids matching the criteria
452      * @throws InvalidParameterException criteria or contextInfo is not valid
453      * @throws MissingParameterException criteria or contextInfo is missing or
454      *                                   null
455      * @throws OperationFailedException  unable to complete request
456      * @throws PermissionDeniedException an authorization failure occurred
457      */
458     public List<String> searchForCourseOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria,
459                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
460             throws InvalidParameterException,
461             MissingParameterException,
462             OperationFailedException,
463             PermissionDeniedException;
464 
465     /**
466      * Searches for CourseOfferings that meet the given search criteria.
467      *
468      * @param criteria    the search criteria
469      * @param contextInfo information containing the principalId and locale
470      *                    information about the caller of service operation
471      * @return a list of CourseOfferings matching the criteria
472      * @throws InvalidParameterException criteria or contextInfo is not valid
473      * @throws MissingParameterException criteria or contextInfo is missing or
474      *                                   null
475      * @throws OperationFailedException  unable to complete request
476      * @throws PermissionDeniedException an authorization failure occurred
477      */
478     public List<CourseOfferingInfo> searchForCourseOfferings(@WebParam(name = "criteria") QueryByCriteria criteria,
479                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
480             throws InvalidParameterException,
481             MissingParameterException,
482             OperationFailedException,
483             PermissionDeniedException;
484 
485     /**
486      * Get the valid options that can be specified to control canonical Course
487      * to CourseOffering operations.
488      * <p/>
489      * This can happen in several situations: (1) when creating a CourseOffering
490      * from scratch that copies data from the canonical Course
491      * <p/>
492      * (2) when a Course is rolled over and the "use canonical" option is
493      * specified in a rollover
494      * <p/>
495      * (3) when a CourseOffering is explicitly asked to be updated based on the
496      * canonical Course
497      * <p/>
498      * (4) when a course offering is explicitly asked to be validated against
499      * the canonical Course
500      * <p/>
501      * These may identify fields to be copied or not copied or special checks or
502      * comparisons to be made, such as comparing that the credits of the course
503      * are consistent with the specified classroom hours.
504      * <p/>
505      * TODO: The exact types that can be specified here have not yet been
506      * defined
507      *
508      * @param contextInfo information containing the principalId and locale
509      *                    information about the caller of service operation
510      * @return list of option keys used to to indicate the options to be used
511      *         when copying data
512      * @throws InvalidParameterException contextInfo is not valid
513      * @throws MissingParameterException contextInfo is missing or null
514      * @throws OperationFailedException  unable to complete request
515      * @throws PermissionDeniedException an authorization failure occurred
516      */
517     public List<String> getValidCanonicalCourseToCourseOfferingOptionKeys(@WebParam(name = "contextInfo") ContextInfo contextInfo)
518             throws InvalidParameterException,
519             MissingParameterException,
520             OperationFailedException,
521             PermissionDeniedException,
522             ReadOnlyException;
523 
524     /**
525      * Get the valid rollover option keys.
526      * <p/>
527      * This is the list of option keys supported by the rollover operation. Keys
528      * released with kuali student can be found here: https://wiki.kuali.org/display/STUDENT/Course+Offering+Set+Types+and+States#CourseOfferingSetTypesandStates-RolloverOptionKeys
529      *
530      * @param contextInfo information containing the principalId and locale
531      *                    information about the caller of service operation
532      * @return a list of option keys
533      * @throws InvalidParameterException contextInfo is not valid
534      * @throws MissingParameterException contextInfo is missing or null
535      * @throws OperationFailedException  unable to complete request
536      * @throws PermissionDeniedException an authorization failure occurred
537      */
538     public List<String> getValidRolloverOptionKeys(@WebParam(name = "contextInfo") ContextInfo contextInfo)
539             throws InvalidParameterException,
540             MissingParameterException,
541             OperationFailedException,
542             PermissionDeniedException,
543             ReadOnlyException;
544 
545     /**
546      * Validates a CourseOffering. Depending on the value of validationType,
547      * this validation could be limited to tests on just the current
548      * CourseOffering and its directly contained sub-objects or expanded to
549      * perform all tests related to this CourseOffering. If an identifier is
550      * present for the CourseOffering (and/or one of its contained sub-objects)
551      * and a record is found for that identifier, the validation checks if the
552      * CourseOffering can be updated to the new values. If an identifier is not
553      * present or a record does not exist, the validation checks if the object
554      * with the given data can be created.
555      *
556      * @param validationTypeKey     the identifier for the validation Type
557      * @param courseOfferingInfo    the CourseOffering to be validated
558      * @param contextInfo           information containing the principalId and
559      *                              locale information about the caller of
560      *                              service operation
561      * @return a list of validation results or an empty list if validation
562      *         succeeded
563      * @throws DoesNotExistException     validationTypeKey or courseOfferingTypeKey
564      *                                   is not found
565      * @throws InvalidParameterException courseOfferingInfo or contextInfo is
566      *                                   not valid
567      * @throws MissingParameterException validationTypeKey, courseOfferingTypeKey,
568      *                                   courseOfferingInfo, or contextInfo is
569      *                                   missing or null
570      * @throws OperationFailedException  unable to complete request
571      * @throws PermissionDeniedException authorization failure
572      */
573     public List<ValidationResultInfo> validateCourseOffering(@WebParam(name = "validationTypeKey") String validationTypeKey,
574                                                              @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo,
575                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
576             throws DoesNotExistException,
577             InvalidParameterException,
578             MissingParameterException,
579             OperationFailedException,
580             PermissionDeniedException;
581 
582     /**
583      * Creates a new course offering from a canonical course.
584      * <p/>
585      * Fields in course offering will be initialized with data from the
586      * canonical.
587      *
588      * @param courseId   Canonical course Id of courseOffering Id that the
589      *                   ActivityOffering will belong to
590      * @param termId     Unique key of the term in which the course is being
591      *                   offered course offering
592      * @param optionKeys options to use when copying data from the canonical
593      * @param context    Context information containing the principalId and
594      *                   locale information about the caller of service
595      *                   operation
596      * @return newly created CourseOfferingInfo
597      * @throws DoesNotExistException        courseId not found
598      * @throws DataValidationErrorException One or more values invalid for this
599      *                                      operation
600      * @throws InvalidParameterException    One or more parameters invalid
601      * @throws MissingParameterException    One or more parameters missing
602      * @throws OperationFailedException     unable to complete request
603      * @throws PermissionDeniedException    authorization failure
604      */
605     public CourseOfferingInfo createCourseOffering(@WebParam(name = "courseId") String courseId,
606                                                    @WebParam(name = "termId") String termId,
607                                                    @WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey,
608                                                    @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo,
609                                                    @WebParam(name = "optionKeys") List<String> optionKeys,
610                                                    @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
611             DataValidationErrorException, InvalidParameterException,
612             MissingParameterException, OperationFailedException, PermissionDeniedException,
613             ReadOnlyException;
614 
615 
616     /**
617      * Creates a new course offering based on the source course offering.
618      * <p/>
619      * Fields in course offering will be initialized with data from the source
620      * course offering. .
621      *
622      * @param sourceCourseOfferingId The id of the course offering to be rolled
623      *                               over.
624      * @param targetTermId           Unique key of the term in which the course
625      *                               is rolled over into
626      * @param optionKeys             keys that control optional processing
627      * @param context                Context information containing the
628      *                               principalId and locale information about
629      *                               the caller of service operation
630      * @return newly created CourseOfferingInfo
631      * @throws DoesNotExistException        sourceCoId not found
632      * @throws AlreadyExistsException       if the course offering already
633      *                                      exists in the target term and skip
634      *                                      if already exists option is
635      *                                      specified
636      * @throws DataValidationErrorException data in system is not valid or not
637      *                                      valid for an option key specified
638      * @throws InvalidParameterException    One or more parameters invalid
639      * @throws MissingParameterException    One or more parameters missing
640      * @throws OperationFailedException     unable to complete request
641      * @throws PermissionDeniedException    authorization failure
642      */
643     @Override
644     public SocRolloverResultItemInfo rolloverCourseOffering(@WebParam(name = "sourceCourseOfferingId") String sourceCourseOfferingId, @WebParam(name = "targetTermId") String targetTermId, @WebParam(name = "optionKeys") List<String> optionKeys, @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException,
645             DoesNotExistException, DataValidationErrorException,
646             InvalidParameterException, MissingParameterException,
647             OperationFailedException, PermissionDeniedException, ReadOnlyException;
648 
649     /**
650      * Updates an existing CourseOffering.
651      *
652      * @param courseOfferingId   Id of CourseOffering to be updated
653      * @param courseOfferingInfo Details of updates to the CourseOffering
654      * @param context            Context information containing the principalId
655      *                           and locale information about the caller of
656      *                           service operation
657      * @return updated CourseOffering
658      * @throws DataValidationErrorException One or more values invalid for this
659      *                                      operation
660      * @throws DoesNotExistException        the CourseOffering does not exist
661      * @throws InvalidParameterException    One or more parameters invalid
662      * @throws MissingParameterException    One or more parameters missing
663      * @throws OperationFailedException     unable to complete request
664      * @throws PermissionDeniedException    authorization failure
665      * @throws VersionMismatchException     The action was attempted on an out
666      *                                      of date version.
667      */
668     public CourseOfferingInfo updateCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
669 
670     /**
671      * Changes the state of an existing CourseOffering into another state
672      * provided that it is valid to do so.
673      *
674      * @param courseOfferingId Id of the CourseOffering to be changed.
675      * @param nextStateKey     The State Key into which the identified
676      *                         courseOffering will be placed if the operation
677      *                         succeeds.
678      * @param contextInfo      Context information containing the principalId
679      *                         and locale information about the caller of
680      *                         service operation
681      * @return status of the operation (success, failed)
682      * @throws DoesNotExistException     the identified CourseOffering does not
683      *                                   exist
684      * @throws InvalidParameterException the contextInfo object is invalid
685      * @throws MissingParameterException One or more parameters missing
686      * @throws OperationFailedException  unable to complete request
687      * @throws PermissionDeniedException authorization failure
688      */
689     public StatusInfo changeCourseOfferingState(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
690 
691     /**
692      * Updates an existing CourseOffering from its canonical. This should
693      * reinitialize and overwrite any changes to the course offering that were
694      * made since its creation with the defaults from the canonical course
695      *
696      * @param courseOfferingId Id of CourseOffering to be updated
697      * @param optionKeys       options to use when copying data from the
698      *                         canonical
699      * @param context          Context information containing the principalId
700      *                         and locale information about the caller of
701      *                         service operation
702      * @return updated CourseOffering
703      * @throws DataValidationErrorException One or more values invalid for this
704      *                                      operation
705      * @throws DoesNotExistException        the CourseOffering does not exist
706      * @throws InvalidParameterException    One or more parameters invalid
707      * @throws MissingParameterException    One or more parameters missing
708      * @throws OperationFailedException     unable to complete request
709      * @throws PermissionDeniedException    authorization failure
710      * @throws VersionMismatchException     The action was attempted on an out
711      *                                      of date version.
712      */
713     @Override
714     public CourseOfferingInfo updateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingId") String courseOfferingId,
715                                                                 @WebParam(name = "optionKeys") List<String> optionKeys,
716                                                                 @WebParam(name = "context") ContextInfo context)
717             throws DataValidationErrorException, DoesNotExistException,
718             InvalidParameterException, MissingParameterException, OperationFailedException,
719             PermissionDeniedException, VersionMismatchException;
720 
721     /**
722      * Deletes an existing CourseOffering.
723      *
724      * @param courseOfferingId the Id of the ActivityOffering to be deleted
725      * @param context          Context information containing the principalId
726      *                         and locale information about the caller of
727      *                         service operation
728      * @return status of the operation (success, failed)
729      * @throws DoesNotExistException          the CourseOffering does not
730      *                                        exist
731      * @throws InvalidParameterException      One or more parameters invalid
732      * @throws MissingParameterException      One or more parameters missing
733      * @throws OperationFailedException       unable to complete request
734      * @throws PermissionDeniedException      authorization failure
735      * @throws DependentObjectsExistException When one or more Format Offering,
736      *                                        Activity Offering, Registration
737      *                                        Group or Seat Pool Definition
738      *                                        exist for course offering.
739      */
740     public StatusInfo deleteCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
741 
742     /**
743      * Deletes an existing CourseOffering cascaded style. Deleting a course
744      * offering cascaded style would also delete all the format offering,
745      * activity offerings, registration groups and seat pool definitions within
746      * it. Cross listed course offerings should also be deleted along with
747      * passed in courseOfferingId.
748      *
749      * @param courseOfferingId the Id of the ActivityOffering to be deleted
750      * @param context          Context information containing the principalId
751      *                         and locale information about the caller of
752      *                         service operation
753      * @return status of the operation (success, failed)
754      * @throws DoesNotExistException     the CourseOffering does not exist
755      * @throws InvalidParameterException One or more parameters invalid
756      * @throws MissingParameterException One or more parameters missing
757      * @throws OperationFailedException  unable to complete request
758      * @throws PermissionDeniedException authorization failure
759      */
760     public StatusInfo deleteCourseOfferingCascaded(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException, DataValidationErrorException;
761 
762     /**
763      * Validates / Compares a course offering against it's canonical course.
764      *
765      * @param courseOfferingInfo the course offering information to be tested.
766      * @param context            Context information containing the principalId
767      *                           and locale information about the caller of
768      *                           service operation
769      * @return the results from performing the validation
770      * @throws DoesNotExistException     if the course associated with the
771      *                                   course offering does not exist
772      * @throws InvalidParameterException if a parameter is invalid
773      * @throws MissingParameterException if a parameter is missing
774      * @throws OperationFailedException  unable to complete request
775      * @throws PermissionDeniedException authorization failure
776      */
777     @Override
778     public List<ValidationResultInfo> validateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo,
779                                                                           @WebParam(name = "optionKeys") List<String> optionKeys,
780                                                                           @WebParam(name = "context") ContextInfo context)
781             throws DoesNotExistException, 
782             InvalidParameterException,
783             MissingParameterException, 
784             OperationFailedException,
785             PermissionDeniedException;
786 
787     /**
788      * Gets an format offering  based on Id.
789      *
790      * @param formatOfferingId The  Format Offering  identifier
791      * @param context            Context information containing the principalId
792      *                           and locale information about the caller of
793      *                           service operation
794      * @return the FormatOffering identified by the identifier
795      * @throws DoesNotExistException     The Format Offering doesn't exist
796      * @throws InvalidParameterException Invalid formatOfferingId
797      * @throws MissingParameterException Missing formatOfferingId
798      * @throws OperationFailedException  unable to complete request
799      */
800     public FormatOfferingInfo getFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
801 
802     /**
803      * Gets a list of format offering by a course offering id they belong to.
804      *
805      * @param courseOfferingId Course offering identifier
806      * @param context            Context information containing the principalId
807      *                           and locale information about the caller of
808      *                           service operation
809      * @return a list of FormatOffering by course offering
810      * @throws DoesNotExistException     The course offering  doesn't exist
811      * @throws InvalidParameterException Invalid course offering id
812      * @throws MissingParameterException Missing course offering id
813      * @throws OperationFailedException  unable to complete request
814      * @throws PermissionDeniedException authorization failure
815      */
816     public List<FormatOfferingInfo> getFormatOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
817 
818     /**
819      * Creates an  Format Offering  for a course offering
820      *
821      * @param courseOfferingId   Course offering that the  Format Offering
822      *                           belongs to
823      * @param formatId          the identifier for the FormatOffering
824      * @param formatOfferingType the type key of the  Format Offering  template
825      * @param formatOfferingInfo The Format Offering  info object
826      * @return the information about the FormatOffering created
827      * @throws DataValidationErrorException
828      * @throws DoesNotExistException        if courseOfferingId or formatId does
829      *                                      not exist for the course in the
830      *                                      course offering
831      * @throws InvalidParameterException    Invalid course offering id
832      * @throws MissingParameterException    Missing course offering id,
833      *                                      formatOfferingTemplate  or
834      *                                      formatOfferingType
835      * @throws OperationFailedException     unable to complete request
836      * @throws PermissionDeniedException
837      */
838     public FormatOfferingInfo createFormatOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "formatId") String formatId, @WebParam(name = "formatOfferingType") String formatOfferingType, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
839 
840     /**
841      * Update a  Format Offering
842      *
843      * @param formatOfferingId   The  Id formatOffering to be updated
844      * @param formatOfferingInfo The new formatOffering Info
845      * @param context            Context information containing the principalId
846      *                           and locale information about the caller of
847      *                           service operation
848      * @return the updated information about the FormatOffering updated.
849      * @throws DataValidationErrorException One or more values invalid for this
850      *                                      operation
851      * @throws DoesNotExistException        The formatOfferingId doesn't exist
852      * @throws InvalidParameterException    Invalid  formatOfferingId or
853      *                                      formatOffering
854      * @throws MissingParameterException    Missing formatOffering or
855      *                                      formatOfferingId
856      * @throws OperationFailedException     unable to complete request
857      * @throws PermissionDeniedException    authorization failure
858      * @throws VersionMismatchException     stale version being updated
859      */
860     public FormatOfferingInfo updateFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
861 
862 
863     /**
864      * Changes the state of an existing FormatOffering to another state provided
865      * that it is valid to do so.
866      *
867      * @param formatOfferingId Id of the FormatOffering to be changed.
868      * @param nextStateKey     The State Key into which the identified
869      *                         FormatOffering will be placed if the operation
870      *                         succeeds.
871      * @param contextInfo      Context information containing the principalId
872      *                         and locale information about the caller of
873      *                         service operation
874      * @return status of the operation (success, failed)
875      * @throws DoesNotExistException     the identified FormatOffering does not
876      *                                   exist
877      * @throws InvalidParameterException the contextInfo object is invalid
878      * @throws MissingParameterException One or more parameters missing
879      * @throws OperationFailedException  unable to complete request
880      * @throws PermissionDeniedException authorization failure
881      */
882     public StatusInfo changeFormatOfferingState(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
883 
884     /**
885      * Validates a format offering. Depending on the value of validationType,
886      * this validation could be limited to tests on just the current object and
887      * its directly contained sub-objects or expanded to perform all tests
888      * related to this object.
889      *
890      * @param validationType     Identifier of the extent of validation
891      * @param formatOfferingInfo the format offering information to be tested.
892      * @param context            Context information containing the principalId
893      *                           and locale information about the caller of
894      *                           service operation
895      * @return the results from performing the validation
896      * @throws DoesNotExistException     validationTypeKey not found
897      * @throws InvalidParameterException invalid validationTypeKey, formatOfferingInfo
898      * @throws MissingParameterException missing validationTypeKey, formatOfferingInfo
899      * @throws OperationFailedException  unable to complete request
900      * @throws PermissionDeniedException authorization failure
901      */
902     public List<ValidationResultInfo> validateFormatOffering(@WebParam(name = "validationType") String validationType, 
903             @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, 
904             @WebParam(name = "context") ContextInfo context) 
905             throws DoesNotExistException, 
906             InvalidParameterException, 
907             MissingParameterException, 
908             OperationFailedException,
909             PermissionDeniedException;
910 
911 
912     /**
913      * Deletes an  Format Offering
914      *
915      * @param formatOfferingId The  Id formatOffering to be deleted
916      * @param context            Context information containing the principalId
917      *                           and locale information about the caller of
918      *                           service operation
919      * @return status of the operation (success, failed)
920      * @throws DoesNotExistException          The formatOfferingId doesn't
921      *                                        exist
922      * @throws InvalidParameterException      Invalid  formatOfferingId
923      * @throws MissingParameterException      Missing  formatOfferingId
924      * @throws OperationFailedException       unable to complete request
925      * @throws PermissionDeniedException      authorization failure
926      * @throws DependentObjectsExistException When one or more Activity
927      *                                        Offering, Registration Group or
928      *                                        Seat Pool Definition exist for the
929      *                                        format offering.
930      */
931     public StatusInfo deleteFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
932 
933 
934     /**
935      * Deletes an  Format Offering with dependent Activity Offering and
936      * Registration group
937      *
938      * @param formatOfferingId The  Id formatOffering to be deleted
939      * @param context            Context information containing the principalId
940      *                           and locale information about the caller of
941      *                           service operation
942      * @return the status of the operation (success/fail)
943      * @throws DoesNotExistException     The formatOfferingId doesn't exist
944      * @throws InvalidParameterException Invalid  formatOfferingId
945      * @throws MissingParameterException Missing  formatOfferingId
946      * @throws OperationFailedException  unable to complete request
947      * @throws PermissionDeniedException authorization failure
948      */
949 
950     public StatusInfo deleteFormatOfferingCascaded(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException, DataValidationErrorException;
951 
952 
953     /**
954      * Searches for FormatOfferings that meet the given search criteria.
955      *
956      * @param criteria    the search criteria
957      * @param contextInfo information containing the principalId and locale
958      *                    information about the caller of service operation
959      * @return a list of CourseOffering Ids matching the criteria
960      * @throws InvalidParameterException criteria or contextInfo is not valid
961      * @throws MissingParameterException criteria or contextInfo is missing or
962      *                                   null
963      * @throws OperationFailedException  unable to complete request
964      * @throws PermissionDeniedException an authorization failure occurred
965      */
966     public List<String> searchForFormatOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria,
967                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
968             throws InvalidParameterException,
969             MissingParameterException,
970             OperationFailedException,
971             PermissionDeniedException;
972 
973     /**
974      * Searches for FormatOfferings that meet the given search criteria.
975      *
976      * @param criteria    the search criteria
977      * @param contextInfo information containing the principalId and locale
978      *                    information about the caller of service operation
979      * @return a list of CourseOfferings matching the criteria
980      * @throws InvalidParameterException criteria or contextInfo is not valid
981      * @throws MissingParameterException criteria or contextInfo is missing or
982      *                                   null
983      * @throws OperationFailedException  unable to complete request
984      * @throws PermissionDeniedException an authorization failure occurred
985      */
986     public List<FormatOfferingInfo> searchForFormatOfferings(@WebParam(name = "criteria") QueryByCriteria criteria,
987                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
988             throws InvalidParameterException,
989             MissingParameterException,
990             OperationFailedException,
991             PermissionDeniedException;
992 
993     
994     
995     /**
996      * This method returns the TypeInfo for a given activity offering type key.
997      *
998      * @param activityOfferingTypeKey Key of the type
999      * @param context                 Context information containing the
1000      *                                principalId and locale information about
1001      *                                the caller of service operation
1002      * @return Information about the Type
1003      * @throws DoesNotExistException     activityOfferingTypeKey not found
1004      * @throws InvalidParameterException invalid activityOfferingTypeKey
1005      * @throws MissingParameterException missing activityOfferingTypeKey
1006      * @throws OperationFailedException  unable to complete request
1007      * @throws PermissionDeniedException authorization failure
1008      */
1009     public TypeInfo getActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1010 
1011     /**
1012      * This method returns the valid activity offering types.
1013      *
1014      * @param context Context information containing the principalId and locale
1015      *                information about the caller of service operation
1016      * @return a list of valid activity offering Types
1017      * @throws InvalidParameterException invalid context
1018      * @throws MissingParameterException missing context
1019      * @throws OperationFailedException  unable to complete request
1020      * @throws PermissionDeniedException authorization failure
1021      */
1022     public List<TypeInfo> getActivityOfferingTypes(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1023 
1024     /**
1025      * This method returns the valid activity offering types for a given
1026      * canonical activity type
1027      *
1028      * @param activityTypeKey Key of the canonical activity type
1029      * @param context         Context information containing the principalId and
1030      *                        locale information about the caller of service
1031      *                        operation
1032      * @return a list of valid activity offering Types
1033      * @throws DoesNotExistException     activityOfferingTypeKey not found
1034      * @throws InvalidParameterException invalid context
1035      * @throws MissingParameterException missing context
1036      * @throws OperationFailedException  unable to complete request
1037      * @throws PermissionDeniedException authorization failure
1038      */
1039     public List<TypeInfo> getActivityOfferingTypesForActivityType(@WebParam(name = "activityTypeKey") String activityTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1040 
1041     /**
1042      * This method returns the valid instructor (lpr) types for an activity
1043      * offering type.
1044      *
1045      * @param activityOfferingTypeKey a key for an activity offering type
1046      * @param context                 information containing the principalId and
1047      *                                locale information about the caller of
1048      *                                service operation
1049      * @return a list of valid instructor types
1050      * @throws DoesNotExistException     activityOfferingTypeKey not found
1051      * @throws InvalidParameterException context is not valud
1052      * @throws MissingParameterException activityOfferingTypeKey or contextInfo
1053      *                                   is missing or null
1054      * @throws OperationFailedException  unable to complete request
1055      * @throws PermissionDeniedException an authorization failure occurred
1056      */
1057     public List<TypeInfo> getInstructorTypesForActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1058 
1059     /**
1060      * Retrieve information about an ActivityOffering
1061      *
1062      * @param activityOfferingId Unique Id of the ActivityOffering
1063      * @param context            Context information containing the principalId
1064      *                           and locale information about the caller of
1065      *                           service operation
1066      * @return ActivityOffering associated with the passed in Id
1067      * @throws DoesNotExistException     ActivityOffering with activityOfferingId not found
1068      * @throws InvalidParameterException invalid activityOfferingId
1069      * @throws MissingParameterException missing activityOfferingId
1070      * @throws OperationFailedException  unable to complete request
1071      * @throws PermissionDeniedException authorization failure
1072      */
1073     public ActivityOfferingInfo getActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1074 
1075     /**
1076      * Retrieves a single ActivityOfferingDisplay by a ActivityOffering Id.
1077      *
1078      * @param activityOfferingId an identifier for an ActivityOffering
1079      * @param contextInfo        information containing the principalId and
1080      *                           locale information about the caller of service
1081      *                           operation
1082      * @return the ActivityOfferingDisplay requested
1083      * @throws DoesNotExistException     activityOfferingId does not exist
1084      * @throws InvalidParameterException contextInfo is not valid
1085      * @throws MissingParameterException activityOfferingId or contextInfo is
1086      *                                   missing or null
1087      * @throws OperationFailedException  unable to complete request
1088      * @throws PermissionDeniedException an authorization failure occurred
1089      */
1090     public ActivityOfferingDisplayInfo getActivityOfferingDisplay(@WebParam(name = "activityOfferingId") String activityOfferingId,
1091                                                                   @WebParam(name = "contextInfo") ContextInfo contextInfo)
1092             throws DoesNotExistException,
1093             InvalidParameterException,
1094             MissingParameterException,
1095             OperationFailedException,
1096             PermissionDeniedException;
1097 
1098     /**
1099      * Retrieves a list of activity offerings by id list.
1100      *
1101      * @param activityOfferingIds List of unique Ids of ActivityCourseOffering
1102      * @param context             Context information containing the principalId
1103      *                            and locale information about the caller of
1104      *                            service operation
1105      * @return Activity offering list
1106      * @throws DoesNotExistException     activityOfferingId in the list not
1107      *                                   found
1108      * @throws InvalidParameterException invalid activityOfferingIds
1109      * @throws MissingParameterException missing activityOfferingIds
1110      * @throws OperationFailedException  unable to complete request
1111      * @throws PermissionDeniedException authorization failure
1112      */
1113     public List<ActivityOfferingInfo> getActivityOfferingsByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1114 
1115 
1116     /**
1117      * Retrieve a list of ActivitAOfferingAdminDisplays corresponding to a list
1118      * of ActivityOffering Ids. The returned list may be in any order and if
1119      * duplicate Ids are supplied, a unique set may or may not be returned.
1120      *
1121      * @param activityOfferingIds a list of ActivityOffering identifiers
1122      * @param contextInfo         information containing the principalId and
1123      *                            locale information about the caller of service
1124      *                            operation
1125      * @return a list of ActivityOfferingDisplays
1126      * @throws DoesNotExistException     an activityOfferingId in the list not
1127      *                                   found
1128      * @throws InvalidParameterException contextInfo is not valid
1129      * @throws MissingParameterException activityOfferingIds, an Id in
1130      *                                   activityOfferingId, or contextInfo is
1131      *                                   missing or null
1132      * @throws OperationFailedException  unable to complete request
1133      * @throws PermissionDeniedException an authorization failure occurred
1134      */
1135     public List<ActivityOfferingDisplayInfo> getActivityOfferingDisplaysByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds,
1136                                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
1137             throws DoesNotExistException,
1138             InvalidParameterException,
1139             MissingParameterException,
1140             OperationFailedException,
1141             PermissionDeniedException;
1142 
1143     /**
1144      * Retrieves a list of ActivityOffering records that belongs to a
1145      * CourseOffering.
1146      *
1147      * @param courseOfferingId Unique Id of the CourseOffering
1148      * @param context          Context information containing the principalId
1149      *                         and locale information about the caller of
1150      *                         service operation
1151      * @return List of ActivityOffering
1152      * @throws DoesNotExistException     courseOfferingId not found
1153      * @throws InvalidParameterException invalid courseOfferingId
1154      * @throws MissingParameterException missing courseOfferingId
1155      * @throws OperationFailedException  unable to complete request
1156      * @throws PermissionDeniedException authorization failure
1157      */
1158     public List<ActivityOfferingInfo> getActivityOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1159 
1160     /**
1161      * Retrieve a list of ActivityOfferingDisplays corresponding to a
1162      * CourseOffering Id. Activity Offerings for all FormatOfferings within the
1163      * given CourseOffering are used to assemble this administrative view.
1164      *
1165      * @param courseOfferingId the identifier for a CourseOffering
1166      * @param contextInfo      information containing the principalId and locale
1167      *                         information about the caller of service
1168      *                         operation
1169      * @return a list of ActivityOfferingDisplayInfos
1170      * @throws DoesNotExistException     courseOfferingId is not found
1171      * @throws InvalidParameterException contextInfo is not valid
1172      * @throws MissingParameterException courseOfferingId or contextInfo is
1173      *                                   missing or null
1174      * @throws OperationFailedException  unable to complete request
1175      * @throws PermissionDeniedException an authorization failure occurred
1176      */
1177     public List<ActivityOfferingDisplayInfo> getActivityOfferingDisplaysForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId,
1178                                                                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
1179             throws DoesNotExistException,
1180             InvalidParameterException,
1181             MissingParameterException,
1182             OperationFailedException,
1183             PermissionDeniedException;
1184 
1185     /**
1186      * Retrieves a list of ActivityOffering records that belongs to an
1187      * ActivityOfferingCluster.
1188      *
1189      * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster
1190      * @param contextInfo               Context information containing the
1191      *                                  principalId and locale information about
1192      *                                  the caller of service operation
1193      * @return List of ActivityOfferings
1194      * @throws DoesNotExistException     activityOfferingClusterId not found
1195      * @throws InvalidParameterException invalid contextInfo
1196      * @throws MissingParameterException activityOfferingClusterId or
1197      *                                   contextInfo is missing or null
1198      * @throws OperationFailedException  unable to complete request
1199      * @throws PermissionDeniedException authorization failure
1200      */
1201     public List<ActivityOfferingInfo> getActivityOfferingsByCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1202 
1203     /**
1204      * Retrieves a list of ActivityOffering records that belongs to a
1205      * CourseOffering.
1206      *
1207      * @param formatOfferingId Unique Id of the CourseOffering
1208      * @param context          Context information containing the principalId
1209      *                         and locale information about the caller of
1210      *                         service operation
1211      * @return List of ActivityOffering
1212      * @throws DoesNotExistException     formatOfferingId not found
1213      * @throws InvalidParameterException invalid courseOfferingId
1214      * @throws MissingParameterException missing courseOfferingId
1215      * @throws OperationFailedException  unable to complete request
1216      * @throws PermissionDeniedException authorization failure
1217      */
1218     public List<ActivityOfferingInfo> getActivityOfferingsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1219 
1220 
1221     /**
1222      * Retrieves a list of ActivityOffering records that belongs to a
1223      * FormatOffering that are not associated with a cluster
1224      *
1225      * @param formatOfferingId Id of the CourseOffering
1226      * @param contextInfo      Context information containing the principalId
1227      *                         and locale information about the caller of
1228      *                         service operation
1229      * @return List of ActivityOfferings without cluster association
1230      * @throws DoesNotExistException     formatOfferingId not found
1231      * @throws InvalidParameterException invalid formatOfferingId
1232      * @throws MissingParameterException formatOfferingId or contextInfo is
1233      *                                   missing or null
1234      * @throws OperationFailedException  unable to complete request
1235      * @throws PermissionDeniedException an authorization failure occurred
1236      */
1237     public List<ActivityOfferingInfo> getActivityOfferingsWithoutClusterByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1238 
1239     /**
1240      * Retrieves the Activity Offerings by actvity offering template id which
1241      * don't have registration groups created for them yet.
1242      *
1243      * @param formatOfferingId The Id of the format offering
1244      * @param context            Context information containing the principalId
1245      *                           and locale information about the caller of
1246      *                           service operation
1247      * @return List of ActivityOfferings by format offering that don't have reg groups yet.
1248      * @throws DoesNotExistException     The formatOfferingId does not exist
1249      * @throws InvalidParameterException Invalid formatOfferingId
1250      * @throws MissingParameterException Missing formatOfferingId
1251      * @throws OperationFailedException  unable to complete request
1252      * @throws PermissionDeniedException authorization failure
1253      */
1254     public List<ActivityOfferingInfo> getActivityOfferingsByFormatOfferingWithoutRegGroup(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1255 
1256 
1257     /**
1258      * Retrieves a list of allowed time slots Ids for an activity offering
1259      *
1260      * @param activityOfferingId identifier for an activity offering
1261      * @param contextInfo     Context information containing the principalId and
1262      *                        locale information about the caller of service
1263      *                        operation
1264      * @return a list of TimeSlots allowed for activityOfferingId or an
1265      *         empty list if none found
1266      * @throws DoesNotExistException     activityOfferingId does not exist
1267      * @throws InvalidParameterException invalid contextInfo
1268      * @throws MissingParameterException activityOfferingId or contextInfo is
1269      *                                   missing or null
1270      * @throws OperationFailedException  unable to complete request
1271      * @throws PermissionDeniedException an authorization failure occurred
1272      */
1273     public List<String> getAllowedTimeSlotIdsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId,
1274                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo)
1275             throws DoesNotExistException,
1276             InvalidParameterException,
1277             MissingParameterException,
1278             OperationFailedException,
1279             PermissionDeniedException;
1280 
1281 
1282     /**
1283      * Retrieves a list of allowed time slots for an activity offering
1284      *
1285      * @param activityOfferingId identifier for an activity offering
1286      * @param contextInfo     Context information containing the principalId and
1287      *                        locale information about the caller of service
1288      *                        operation
1289      * @return a list of TimeSlots allowed for activityOfferingId or an
1290      *         empty list if none found
1291      * @throws DoesNotExistException     activityOfferingId does not exist
1292      * @throws InvalidParameterException invalid contextInfo
1293      * @throws MissingParameterException activityOfferingId or contextInfo is
1294      *                                   missing or null
1295      * @throws OperationFailedException  unable to complete request
1296      * @throws PermissionDeniedException an authorization failure occurred
1297      */
1298     public List<TimeSlotInfo> getAllowedTimeSlotsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId,
1299                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo)
1300             throws DoesNotExistException,
1301             InvalidParameterException,
1302             MissingParameterException,
1303             OperationFailedException,
1304             PermissionDeniedException;
1305 
1306     /**
1307      * Retrieves a list of allowed time slots for given days, startTime
1308      * and for an activity offering
1309      *
1310      * @param activityOfferingId identifier for an activity offering
1311      * @param daysOfWeek      days of the week of interest
1312      * @param startTime       start time of interest
1313      * @param contextInfo     Context information containing the principalId and
1314      *                        locale information about the caller of service
1315      *                        operation
1316      * @return a list of TimeSlots allowed for activityOfferingId, days,
1317      *                        startTime or an empty list if none found
1318      * @throws DoesNotExistException     activityOfferingId does not exist
1319      * @throws InvalidParameterException invalid daysOfWeek, startTime or contextInfo
1320      * @throws MissingParameterException activityOfferingId, daysOfWeek, startTime or contextInfo is
1321      *                                   missing or null
1322      * @throws OperationFailedException  unable to complete request
1323      * @throws PermissionDeniedException an authorization failure occurred
1324      */
1325     public List<TimeSlotInfo> getAllowedTimeSlotsByDaysAndStartTimeForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId,
1326                                                                                        @WebParam(name = "daysOfWeek") List<Integer> daysOfWeek,
1327                                                                                        @WebParam(name = "startTime") TimeOfDayInfo startTime,
1328                                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo)
1329             throws DoesNotExistException,
1330             InvalidParameterException,
1331             MissingParameterException,
1332             OperationFailedException,
1333             PermissionDeniedException;
1334 
1335     /**
1336      * Searches for ActivityOfferings that meet the given search criteria.
1337      *
1338      * @param criteria    the search criteria
1339      * @param contextInfo context information containing the principalId and
1340      *                    locale information about the caller of service
1341      *                    operation
1342      * @return a list of ActivityOffering Ids matching the criteria
1343      * @throws InvalidParameterException criteria or contextInfo is not valid
1344      * @throws MissingParameterException criteria or contextInfo is missing or
1345      *                                   null
1346      * @throws OperationFailedException  unable to complete request
1347      * @throws PermissionDeniedException an authorization failure occurred
1348      */
1349     public List<String> searchForActivityOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria,
1350                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo)
1351             throws InvalidParameterException,
1352             MissingParameterException,
1353             OperationFailedException,
1354             PermissionDeniedException;
1355 
1356     /**
1357      * Searches for ActivityOfferings that meet the given search criteria.
1358      *
1359      * @param criteria    the search criteria
1360      * @param contextInfo context information containing the principalId and
1361      *                    locale information about the caller of service
1362      *                    operation
1363      * @return a list of ActivityOfferings matching the criteria
1364      * @throws InvalidParameterException criteria or contextInfo is not valid
1365      * @throws MissingParameterException criteria or contextInfo is missing or
1366      *                                   null
1367      * @throws OperationFailedException  unable to complete request
1368      * @throws PermissionDeniedException an authorization failure occurred
1369      */
1370     public List<ActivityOfferingInfo> searchForActivityOfferings(@WebParam(name = "criteria") QueryByCriteria criteria,
1371                                                                  @WebParam(name = "contextInfo") ContextInfo contextInfo)
1372             throws InvalidParameterException,
1373             MissingParameterException,
1374             OperationFailedException,
1375             PermissionDeniedException;
1376 
1377     /**
1378      * Creates a new Activity Offering for a format offering.
1379      *
1380      * @param formatOfferingId     courseOffering that the ActivityOffering
1381      *                             belongs to
1382      * @param activityId           the canonical activity this is associated
1383      *                             with
1384      * @param activityOfferingInfo Details of the ActivityOffering to be
1385      *                             created
1386      * @param context              Context information containing the
1387      *                             principalId and locale information about the
1388      *                             caller of service operation
1389      * @return newly created ActivityOffering
1390      * @throws DoesNotExistException        if the format offering does not
1391      *                                      exist
1392      * @throws DataValidationErrorException One or more values invalid for this
1393      *                                      operation
1394      * @throws InvalidParameterException    One or more parameters invalid
1395      * @throws MissingParameterException    One or more parameters missing
1396      * @throws OperationFailedException     unable to complete request
1397      * @throws PermissionDeniedException    authorization failure
1398      */
1399     public ActivityOfferingInfo createActivityOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityId") String activityId, @WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
1400 
1401     /**
1402      * Creates a new Activity Offering from another activity offering, the
1403      * generated activity offering is the same format offering, type and
1404      * canonical activity as the source activity fofering
1405      *
1406      * @param activityOfferingId the  activity offering used as source
1407      * @param context            Context information containing the principalId
1408      *                           and locale information about the caller of
1409      *                           service operation
1410      * @return newly created ActivityOffering
1411      * @throws DoesNotExistException        if the format offering does not
1412      *                                      exist
1413      * @throws DataValidationErrorException One or more values invalid for this
1414      *                                      operation
1415      * @throws InvalidParameterException    One or more parameters invalid
1416      * @throws MissingParameterException    One or more parameters missing
1417      * @throws OperationFailedException     unable to complete request
1418      * @throws PermissionDeniedException    authorization failure
1419      */
1420     public ActivityOfferingInfo copyActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
1421 
1422     /**
1423      * Generates activity offerings based on a format offering.
1424      *
1425      * @param formatOfferingId the identifier for the FormatOffering.
1426      * @param activityOfferingType a key for an activity offering type
1427      * @param quantity           quantity of the activity offerings of that type
1428      * @param context            Context information containing the principalId
1429      *                           and locale information about the caller of
1430      *                           service operation
1431      * @return activity offerings based on format offering
1432      * @throws InvalidParameterException formatOfferingId invalid
1433      * @throws MissingParameterException Missing formatOfferingId in the input
1434      * @throws OperationFailedException  unable to complete request
1435      * @throws PermissionDeniedException authorization failure
1436      */
1437     List<ActivityOfferingInfo> generateActivityOfferings(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingType") String activityOfferingType, @WebParam(name = "quantity") Integer quantity, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1438 
1439     /**
1440      * Updates an existing ActivityOffering.
1441      *
1442      * @param activityOfferingId   Id of ActivitOffering to be updated
1443      * @param activityOfferingInfo Details of updates to the ActivityOffering
1444      * @param context              Context information containing the
1445      *                             principalId and locale information about the
1446      *                             caller of service operation
1447      * @return updated ActivityOffering
1448      * @throws DataValidationErrorException One or more values invalid for this
1449      *                                      operation
1450      * @throws DoesNotExistException        the ActivityOffering does not exist
1451      * @throws InvalidParameterException    One or more parameters invalid
1452      * @throws MissingParameterException    One or more parameters missing
1453      * @throws OperationFailedException     unable to complete request
1454      * @throws PermissionDeniedException    authorization failure
1455      * @throws VersionMismatchException     The action was attempted on an out
1456      *                                      of date version.
1457      */
1458     public ActivityOfferingInfo updateActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, ReadOnlyException;
1459 
1460 
1461     /**
1462      * Changes the state of an existing ActivityOffering to another state
1463      * provided that it is valid to do so.
1464      *
1465      * @param activityOfferingId Id of the ActivityOffering to be changed.
1466      * @param nextStateKey       The State Key into which the identified
1467      *                           ActivityOffering will be placed if the
1468      *                           operation succeeds.
1469      * @param contextInfo        Context information containing the principalId
1470      *                           and locale information about the caller of
1471      *                           service operation
1472      * @return status of the operation (success, failed)
1473      * @throws DoesNotExistException     the identified ActivityOffering does
1474      *                                   not exist
1475      * @throws InvalidParameterException the contextInfo object is invalid
1476      * @throws MissingParameterException One or more parameters missing
1477      * @throws OperationFailedException  unable to complete request
1478      * @throws PermissionDeniedException authorization failure
1479      */
1480     public StatusInfo changeActivityOfferingState(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1481 
1482     /**
1483      * Deletes an existing ActivityOffering. Deleting an activity will also
1484      * delete any relation it has with course offerings. An activity offering
1485      * cannot be deleted if it is being referenced in a registration group and
1486      * will be DependentObjectsExistException. The registration group needs to
1487      * be updated to drop the activity offering references before the activity
1488      * offering can be deleted. The difference in behavior is because of the
1489      * relationship nature is different between course offering to activity
1490      * offering and registration group to activity offering. Course offering
1491      * contains activity offering, so deleting an activity offering can be
1492      * logically interpreted as removing the containing relationship.
1493      * Registration group only references existing activity offerings and hence
1494      * deleting an activity offering will leave the registration group in
1495      * inconsistent state and updating registration group automatically will
1496      * lead to unintended side effects.
1497      *
1498      * @param activityOfferingId the Id of the ActivityOffering to be deleted
1499      * @param context            Context information containing the principalId
1500      *                           and locale information about the caller of
1501      *                           service operation
1502      * @return status of the operation (success, failed)
1503      * @throws DoesNotExistException          the identified ActivityOffering
1504      *                                        does not exist
1505      * @throws InvalidParameterException      One or more parameters invalid
1506      * @throws MissingParameterException      One or more parameters missing
1507      * @throws OperationFailedException       unable to complete request
1508      * @throws PermissionDeniedException      authorization failure
1509      * @throws DependentObjectsExistException when one or more Registration
1510      *                                        Group and/or Seat Pool Definitions
1511      *                                        dependencies exist.
1512      */
1513     public StatusInfo deleteActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
1514 
1515     /**
1516      * Deletes an existing ActivityOffering cascaded style. Deleting an activity
1517      * offering cascaded style would also delete all the registration groups and
1518      * seat pools associated with it.
1519      *
1520      * @param activityOfferingId the Id of the ActivityOffering to be deleted
1521      * @param formatOfferingId
1522      * @param context            Context information containing the principalId
1523      *                           and locale information about the caller of
1524      *                           service operation
1525      * @return status of the operation (success, failed)
1526      * @throws DoesNotExistException     the identified Activity o does not
1527      *                                   exist
1528      * @throws InvalidParameterException One or more parameters invalid
1529      * @throws MissingParameterException One or more parameters missing
1530      * @throws OperationFailedException  unable to complete request
1531      * @throws PermissionDeniedException authorization failure
1532      */
1533     public StatusInfo deleteActivityOfferingCascaded(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException, DataValidationErrorException;
1534 
1535     /**
1536      * Attempt to schedule a single Activity Offering using the Scheduling
1537      * Service.
1538      * <p/>
1539      * This is designed to be used for one-off scheduling of activity offerings
1540      * created after the mass scheduling event.
1541      * <p/>
1542      * The expectation is that this method is synchronous (i.e. it will block
1543      * until the request is completed or fails).
1544      * <p/>
1545      * We also assume that the underlying scheduling service call will not take
1546      * an unbounded amount of time to solve but rather a quick one-off that will
1547      * return in a short amount of time.
1548      *
1549      * @param activityOfferingId Id of the Activity Offering to be scheduled.
1550      * @param contextInfo        Context information containing the principalId
1551      *                           and locale information about the caller of
1552      *                           service operation
1553      * @return status of the starting the scheduling process for the
1554      *         activityOffering (success, failed)
1555      * @throws DoesNotExistException     the identified activity offering does
1556      *                                   not exist.
1557      * @throws InvalidParameterException the contextInfo parameter object is
1558      *                                   invalid.
1559      * @throws MissingParameterException one or more of the method parameter's
1560      *                                   is missing.
1561      * @throws OperationFailedException  unable to complete request
1562      * @throws PermissionDeniedException authorization failure
1563      */
1564     public StatusInfo scheduleActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1565 
1566     /**
1567      * Validates an activity offering. Depending on the value of validationType,
1568      * this validation could be limited to tests on just the current object and
1569      * its directly contained sub-objects or expanded to perform all tests
1570      * related to this object. If an identifier is present for the academic
1571      * calendar and a record is found for that identifier, the validation checks
1572      * if the academic calendar can be shifted to the new values. If a record
1573      * cannot be found for the identifier, it is assumed that the record does
1574      * not exist and as such, the checks performed will be much shallower,
1575      * typically mimicking those performed by setting the validationType to the
1576      * current object. This is a slightly different pattern from the standard
1577      * validation as the caller provides the identifier in the create statement
1578      * instead of the server assigning an identifier.
1579      *
1580      * @param validationType       Identifier of the extent of validation
1581      * @param activityOfferingInfo the activity offering information to be
1582      *                             tested.
1583      * @param context              Context information containing the
1584      *                             principalId and locale information about the
1585      *                             caller of service operation
1586      * @return the results from performing the validation
1587      * @throws DoesNotExistException     validationTypeKey not found
1588      * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo
1589      * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo
1590      * @throws OperationFailedException  unable to complete request
1591      * @throws PermissionDeniedException authorization failure
1592      */
1593     public List<ValidationResultInfo> validateActivityOffering(@WebParam(name = "validationType") String validationType, 
1594             @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, 
1595             @WebParam(name = "context") ContextInfo context) 
1596             throws DoesNotExistException, 
1597             InvalidParameterException, 
1598             MissingParameterException, 
1599             OperationFailedException,
1600             PermissionDeniedException;
1601 
1602     /**
1603      * When/for how long does the offering meet in class during the term.
1604      * Calculated by system based on meeting times and term length; may be
1605      * validated against CLU.
1606      *
1607      * @param activityOfferingId the Id of the ActivityOffering to be used for
1608      *                           contact hour calculation
1609      * @param context            Context information containing the principalId
1610      *                           and locale information about the caller of
1611      *                           service operation
1612      * @return in class contact hours for the term
1613      * @throws DoesNotExistException     the ActivityOffering with activityOfferingId does not exist
1614      * @throws InvalidParameterException One or more parameters invalid
1615      * @throws MissingParameterException One or more parameters missing
1616      * @throws OperationFailedException  unable to complete request
1617      * @throws PermissionDeniedException authorization failure
1618      */
1619     public Float calculateInClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1620 
1621     /**
1622      * When/for how long does the offering meet out of class during the term.
1623      * Calculated by system based on meeting times and term length; may be
1624      * validated against CLU.
1625      *
1626      * @param activityOfferingId the Id of the ActivityOffering to be used for
1627      *                           contact hour calculation
1628      * @param context            Context information containing the principalId
1629      *                           and locale information about the caller of
1630      *                           service operation
1631      * @return out of class contact hours for the term
1632      * @throws DoesNotExistException     the ActivityOffering with activityOfferingId does not exist
1633      * @throws InvalidParameterException One or more parameters invalid
1634      * @throws MissingParameterException One or more parameters missing
1635      * @throws OperationFailedException  unable to complete request
1636      * @throws PermissionDeniedException authorization failure
1637      */
1638     public Float calculateOutofClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1639 
1640     /**
1641      * When/for how long does the offering meet in total during the term.
1642      * Calculated by system based on meeting times and term length; may be
1643      * validated against CLU.
1644      *
1645      * @param activityOfferingId the Id of the ActivityOffering to be used for
1646      *                           contact hour calculation
1647      * @param context            Context information containing the principalId
1648      *                           and locale information about the caller of
1649      *                           service operation
1650      * @return total class contact hours for the term
1651      * @throws DoesNotExistException     the ActivityOffering with activityOfferingId does not exist
1652      * @throws InvalidParameterException One or more parameters invalid
1653      * @throws MissingParameterException One or more parameters missing
1654      * @throws OperationFailedException  unable to complete request
1655      * @throws PermissionDeniedException authorization failure
1656      */
1657     public Float calculateTotalContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1658 
1659     /**
1660      * Retrieve  a RegistrationGroup   based on id
1661      *
1662      * @param registrationGroupId Unique Id of the RegistrationGroup
1663      * @param context             Context information containing the principalId
1664      *                            and locale information about the caller of
1665      *                            service operation
1666      * @return RegistrationGroup associated with the passed in Id
1667      * @throws DoesNotExistException     registrationGroupId not found
1668      * @throws InvalidParameterException invalid registrationGroupId
1669      * @throws MissingParameterException missing registrationGroupId
1670      * @throws OperationFailedException  unable to complete request
1671      * @throws PermissionDeniedException authorization failure
1672      */
1673     public RegistrationGroupInfo getRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1674 
1675     /**
1676      * Retrieves a list of registration group by id list.
1677      *
1678      * @param registrationGroupIds List of unique Ids of RegistrationGroup
1679      * @param context              Context information containing the
1680      *                             principalId and locale information about the
1681      *                             caller of service operation
1682      * @return Registration Group list
1683      * @throws DoesNotExistException     registrationGroupId in the list not
1684      *                                   found
1685      * @throws InvalidParameterException invalid registrationGroupIds
1686      * @throws MissingParameterException missing registrationGroupIds
1687      * @throws OperationFailedException  unable to complete request
1688      * @throws PermissionDeniedException authorization failure
1689      */
1690     public List<RegistrationGroupInfo> getRegistrationGroupsByIds(@WebParam(name = "registrationGroupIds") List<String> registrationGroupIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1691 
1692     /**
1693      * Retrieves a list of RegistrationGroup records that belongs to a
1694      * CourseOffering
1695      *
1696      * @param courseOfferingId Unique Id of the CourseOffering
1697      * @param context          Context information containing the principalId
1698      *                         and locale information about the caller of
1699      *                         service operation
1700      * @return List of RegistrationGroups
1701      * @throws DoesNotExistException     courseOfferingId not found
1702      * @throws InvalidParameterException invalid courseOfferingId
1703      * @throws MissingParameterException missing courseOfferingId
1704      * @throws OperationFailedException  unable to complete request
1705      * @throws PermissionDeniedException authorization failure
1706      */
1707     public List<RegistrationGroupInfo> getRegistrationGroupsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1708 
1709     /**
1710      * Retrieves a list of RegistrationGroup records that contain all the
1711      * activity offerings in the input list.
1712      *
1713      * @param activityOfferingIds List of activityOffering Identifiers
1714      * @param context            Context information containing the principalId
1715      *                           and locale information about the caller of
1716      *                           service operation
1717      * @return a list of RegistrationGroup records that contain all the
1718      *         activity offerings in the input list.
1719      * @throws DoesNotExistException     One or more of the activityOfferingIds
1720      *                                   doesn't exist
1721      * @throws InvalidParameterException One or more invalid activityOfferingIds
1722      * @throws MissingParameterException Missing activityOfferingIds
1723      * @throws OperationFailedException  unable to complete request
1724      * @throws PermissionDeniedException authorization failure
1725      */
1726     public List<RegistrationGroupInfo> getRegistrationGroupsWithActivityOfferings(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1727 
1728     /**
1729      * Returns all registration groups that contain activityOfferingId in the list of AOs associated with
1730      * the registration group.  A variant of getRegistrationGroupsWithActivityOfferings with only a single
1731      * activity offering.
1732      * @param activityOfferingId An activity offering id.
1733      * @param context            Context information containing the principalId
1734      *                           and locale information about the caller of
1735      *                           service operation
1736      * @return a list of RegistrationGroup records that contain all the
1737      *         activity offerings in the input list.
1738      * @throws DoesNotExistException     One or more of the activityOfferingIds
1739      *                                   doesn't exist
1740      * @throws InvalidParameterException One or more invalid activityOfferingIds
1741      * @throws MissingParameterException Missing activityOfferingIds
1742      * @throws OperationFailedException  unable to complete request
1743      * @throws PermissionDeniedException authorization failure
1744      */
1745     public List<RegistrationGroupInfo> getRegistrationGroupsByActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1746 
1747     /**
1748      * Retrieves a list of RegistrationGroup records that belongs to a
1749      * CourseOffering for a given canonical format type
1750      *
1751      * @param formatOfferingId Unique Id of the CourseOffering
1752      * @param context          information containing the principalId and locale
1753      *                         information about the caller of service
1754      *                         operation
1755      * @return List of RegistrationGroups
1756      * @throws DoesNotExistException     courseOfferingId or formatTypeKey not
1757      *                                   found
1758      * @throws InvalidParameterException invalid courseOfferingId or
1759      *                                   formatTypeKey
1760      * @throws MissingParameterException missing courseOfferingId or
1761      *                                   formatTypeKey
1762      * @throws OperationFailedException  unable to complete request
1763      * @throws PermissionDeniedException authorization failure
1764      */
1765     public List<RegistrationGroupInfo> getRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1766 
1767     /**
1768      * Retrieves a list of RegistrationGroup records that belongs to a specified
1769      * ActivityOfferingCluster.
1770      *
1771      * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster
1772      * @param contextInfo               information containing the principalId
1773      *                                  and locale information about the caller
1774      *                                  of service operation
1775      * @return List of RegistrationGroups
1776      * @throws DoesNotExistException     No ActivityOfferingCluster exists for
1777      *                                   the specified activityOfferingClusterId.
1778      * @throws InvalidParameterException invalid contextInfo object
1779      * @throws MissingParameterException one or more method parameters are
1780      *                                   missing.
1781      * @throws OperationFailedException  unable to complete request
1782      * @throws PermissionDeniedException authorization failure
1783      */
1784     public List<RegistrationGroupInfo> getRegistrationGroupsByActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1785 
1786     /**
1787      * Searches for RegistrationGroups that meet the given search criteria.
1788      *
1789      * @param criteria    the search criteria
1790      * @param contextInfo context information containing the principalId and
1791      *                    locale information about the caller of service
1792      *                    operation
1793      * @return a list of RegistrationGroup Ids matching the criteria
1794      * @throws InvalidParameterException criteria or contextInfo is not valid
1795      * @throws MissingParameterException criteria or contextInfo is missing or
1796      *                                   null
1797      * @throws OperationFailedException  unable to complete request
1798      * @throws PermissionDeniedException an authorization failure occurred
1799      */
1800     public List<String> searchForRegistrationGroupIds(@WebParam(name = "criteria") QueryByCriteria criteria,
1801                                                       @WebParam(name = "contextInfo") ContextInfo contextInfo)
1802             throws InvalidParameterException,
1803             MissingParameterException,
1804             OperationFailedException,
1805             PermissionDeniedException;
1806 
1807     /**
1808      * Searches for RegistrationGroups that meet the given search criteria.
1809      *
1810      * @param criteria    the search criteria
1811      * @param contextInfo context information containing the principalId and
1812      *                    locale information about the caller of service
1813      *                    operation
1814      * @return a list of RegistrationGroups matching the criteria
1815      * @throws InvalidParameterException criteria or contextInfo is not valid
1816      * @throws MissingParameterException criteria or contextInfo is missing or
1817      *                                   null
1818      * @throws OperationFailedException  unable to complete request
1819      * @throws PermissionDeniedException an authorization failure occurred
1820      */
1821     public List<RegistrationGroupInfo> searchForRegistrationGroups(@WebParam(name = "criteria") QueryByCriteria criteria,
1822                                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
1823             throws InvalidParameterException,
1824             MissingParameterException,
1825             OperationFailedException,
1826             PermissionDeniedException;
1827 
1828     /**
1829      * Validates a registration group. Depending on the value of validationType,
1830      * this validation could be limited to tests on just the current object and
1831      * its directly contained subobjects or expanded to perform all tests
1832      * related to this object. If an identifier is present for the academic
1833      * calendar and a record is found for that identifier, the validation checks
1834      * if the academic calendar can be shifted to the new values. If a record
1835      * cannot be found for the identifier, it is assumed that the record does
1836      * not exist and as such, the checks performed will be much shallower,
1837      * typically mimicking those performed by setting the validationType to the
1838      * current object. This is a slightly different pattern from the standard
1839      * validation as the caller provides the identifier in the create statement
1840      * instead of the server assigning an identifier.
1841      *
1842      * @param validationType            Identifier of the extent of validation
1843      * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster
1844      * @param registrationGroupType     the identifier for the RegistrationGroup
1845      *                                  type
1846      * @param registrationGroupInfo     the registrationGroup information to be
1847      *                                  tested.
1848      * @param contextInfo               Context information containing the
1849      *                                  principalId and locale information about
1850      *                                  the caller of service operation
1851      * @return a list of validation results or an empty list if validation
1852      *         succeeded
1853      * @throws DoesNotExistException     validationTypeKey not found
1854      * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo
1855      * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo
1856      * @throws OperationFailedException  unable to complete request
1857      * @throws PermissionDeniedException authorization failure
1858      */
1859     public List<ValidationResultInfo> validateRegistrationGroup(@WebParam(name = "validationType") String validationType,
1860                                                                 @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId,
1861                                                                 @WebParam(name = "registrationGroupType") String registrationGroupType,
1862                                                                 @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo,
1863                                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
1864             throws DoesNotExistException,
1865             InvalidParameterException, 
1866             MissingParameterException, 
1867             OperationFailedException,
1868             PermissionDeniedException;
1869 
1870     /**
1871      * Creates a new Registration Group.
1872      *
1873      * @param formatOfferingId          formatOfferingId that the  RegistrationGroup
1874      *                                  is based on
1875      * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster
1876      * @param registrationGroupType     the identifier for the RegistrationGroup
1877      *                                  type
1878      * @param registrationGroupInfo     Details of the RegistrationGroup to be
1879      *                                  created
1880      * @param context                   Context information containing the
1881      *                                  principalId and locale information about
1882      *                                  the caller of service operation
1883      * @return newly created registrationGroup
1884      * @throws DoesNotExistException        courseOfferingId not found
1885      * @throws DataValidationErrorException One or more values invalid for this
1886      *                                      operation
1887      * @throws InvalidParameterException    One or more parameters invalid
1888      * @throws MissingParameterException    One or more parameters missing
1889      * @throws OperationFailedException     unable to complete request
1890      * @throws PermissionDeniedException    authorization failure
1891      */
1892     public RegistrationGroupInfo createRegistrationGroup(@WebParam(name = "formatOfferingId") String formatOfferingId,
1893                                                          @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId,
1894                                                          @WebParam(name = "registrationGroupType") String registrationGroupType,
1895                                                          @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo,
1896                                                          @WebParam(name = "context") ContextInfo context)
1897             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
1898 
1899     /**
1900      * Updates an existing RegistrationGroup.
1901      *
1902      * @param registrationGroupId   Id of RegistrationGroup to be updated
1903      * @param registrationGroupInfo Details of updates to the RegistrationGroup
1904      * @param context               Context information containing the
1905      *                              principalId and locale information about the
1906      *                              caller of service operation
1907      * @return updated RegistrationGroup
1908      * @throws DataValidationErrorException One or more values invalid for this
1909      *                                      operation
1910      * @throws DoesNotExistException        the registrationGroupId does not
1911      *                                      exist
1912      * @throws InvalidParameterException    One or more parameters invalid
1913      * @throws MissingParameterException    One or more parameters missing
1914      * @throws OperationFailedException     unable to complete request
1915      * @throws PermissionDeniedException    authorization failure
1916      * @throws VersionMismatchException     The action was attempted on an out
1917      *                                      of date version.
1918      */
1919     public RegistrationGroupInfo updateRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
1920 
1921     /**
1922      * Changes the state of an existing RegistrationGroup to another state
1923      * provided that it is valid to do so.
1924      *
1925      * @param registrationGroupId Id of the RegistrationGroup to be changed.
1926      * @param nextStateKey        The State Key into which the identified
1927      *                            RegistrationGroup will be placed if the
1928      *                            operation succeeds.
1929      * @param contextInfo         Context information containing the principalId
1930      *                            and locale information about the caller of
1931      *                            service operation
1932      * @return status of the operation (success, failed)
1933      * @throws DoesNotExistException     the identified RegsitrationGroup does
1934      *                                   not exist
1935      * @throws InvalidParameterException the contextInfo object is invalid
1936      * @throws MissingParameterException One or more parameters missing
1937      * @throws OperationFailedException  unable to complete request
1938      * @throws PermissionDeniedException authorization failure
1939      */
1940     public StatusInfo changeRegistrationGroupState(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1941 
1942     /**
1943      * Deletes an existing Registration Group. Removes the relationship to the
1944      * course offering and activity offering. The activity offerings are not
1945      * automatically deleted
1946      *
1947      * @param registrationGroupId the Id of the RegistrationGroup to be deleted
1948      * @param context             Context information containing the principalId
1949      *                            and locale information about the caller of
1950      *                            service operation
1951      * @throws DoesNotExistException     the RegistrationGroup does not exist
1952      * @throws InvalidParameterException One or more parameters invalid
1953      * @throws MissingParameterException One or more parameters missing
1954      * @throws OperationFailedException  unable to complete request
1955      * @throws PermissionDeniedException authorization failure
1956      */
1957     public StatusInfo deleteRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1958 
1959     /**
1960      * Deletes all Registration Groups for a Format Offering.
1961      *
1962      * @param formatOfferingId the Id of the FormatOffering
1963      * @param context          Context information containing the principalId
1964      *                         and locale information about the caller of
1965      *                         service operation
1966      * @throws InvalidParameterException One or more parameters invalid
1967      * @throws MissingParameterException One or more parameters missing
1968      * @throws OperationFailedException  unable to complete request
1969      * @throws PermissionDeniedException authorization failure
1970      */
1971     public List<BulkStatusInfo> deleteRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1972 
1973     /**
1974      * Deletes all generated Registration Groups for a Format Offering. A
1975      * generated registration group is one whose isGenerated() flag is true.
1976      *
1977      * @param formatOfferingId the Id of the FormatOffering
1978      * @param context          Context information containing the principalId
1979      *                         and locale information about the caller of
1980      *                         service operation
1981      * @throws InvalidParameterException One or more parameters invalid
1982      * @throws MissingParameterException One or more parameters missing
1983      * @throws OperationFailedException  unable to complete request
1984      * @throws PermissionDeniedException authorization failure
1985      */
1986     public List<BulkStatusInfo> deleteGeneratedRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1987 
1988     /**
1989      * Deletes all Registration Groups associated with an Activity Offering
1990      * Cluster
1991      *
1992      * @param activityOfferingClusterId the Id of the FormatOffering
1993      * @param contextInfo               Context information containing the
1994      *                                  principalId and locale information about
1995      *                                  the caller of service operation
1996      * @return status of the operation (success, failed)
1997      * @throws InvalidParameterException invalid contextInfo
1998      * @throws MissingParameterException activityOfferingClusterId or
1999      *                                   contextInfo is missing or null
2000      * @throws OperationFailedException  unable to complete request
2001      * @throws PermissionDeniedException an authorization failure has occurred
2002      */
2003     public List<BulkStatusInfo> deleteRegistrationGroupsForCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2004 
2005     /**
2006      * Verifies a Registration Group applying rules such as: 
2007      * <ol>
2008      * <li>Registration Group has one ActivityOffering for each Format Offering
2009      *  activityOfferingType</li>
2010      * <li>ActivityOffering's don't have any time conflicts (if scheduling
2011      * has already happened)</li>
2012      * <li>ActivityOffering's are all offered at the same campus</li>
2013      * <li>ActivityOffering's don't have conflicting seatpool/enrollment 
2014      * restrictions</li>
2015      * </ol>
2016      * <p></p>
2017      * The distinction between <b>validateRegistrationGroup</b> and this 
2018      * method is that <b>validate</b> checks if its OK to save the object where
2019      * as <b>verify</b> checks a saved object and its relation to other saved objects.
2020      * <p></p>
2021      * <b>validate</b> is called for every <b>create</b> and <b>update</b> and 
2022      * needs to execute quickly where as this method can take longer to 
2023      * accurately evaluate the specified RegistrationGroup.
2024      * 
2025      * @param registrationGroupId the registrationGroup information to be
2026      *                            tested.
2027      * @param contextInfo         Context information containing the principalId
2028      *                            and locale information about the caller of
2029      *                            service operation
2030      * @return a list of validation results or an empty list if validation
2031      *         succeeded
2032      * @throws DoesNotExistException     contextInfo not found
2033      * @throws InvalidParameterException invalid registrationGroupId or
2034      *                                   contextInfo
2035      * @throws MissingParameterException registrationGroupId or contextInfo is
2036      *                                   missing or null
2037      * @throws OperationFailedException  unable to complete request
2038      */
2039     public List<ValidationResultInfo> verifyRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
2040 
2041 
2042     /**
2043      * Gets an Activity Offering Cluster based on the Identifier
2044      *
2045      * @param activityOfferingClusterId Identifier of the Activity Offering
2046      *                                  Cluster
2047      * @param contextInfo               Context information containing the
2048      *                                  principalId and locale information about
2049      *                                  the caller of service operation
2050      * @return ActivityOfferingCluster
2051      * @throws DoesNotExistException     activityOfferingClusterId does not
2052      *                                   exist
2053      * @throws InvalidParameterException Invalid contextInfo
2054      * @throws MissingParameterException activityOfferingClusterId or
2055      *                                   contextInfo is missing or null
2056      * @throws OperationFailedException  unable to complete request
2057      * @throws PermissionDeniedException an authorization failure occurred
2058      */
2059     public ActivityOfferingClusterInfo getActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2060 
2061 
2062     /**
2063      * Retrieves a list of activity offering clusters using the given id list.
2064      * The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned.
2065      *
2066      * @param activityOfferingClusterIds List of unique Ids of ActivityOfferingClusters
2067      * @param contextInfo            Context information containing the principalId
2068      *                            and locale information about the caller of
2069      *                            service operation
2070      * @return Activity offering cluster list
2071      * @throws DoesNotExistException     activityOfferingClusterId in the list not
2072      *                                   found
2073      * @throws InvalidParameterException invalid activityOfferingClusterIds
2074      * @throws MissingParameterException missing activityOfferingClusterIds
2075      * @throws OperationFailedException  unable to complete request
2076      * @throws PermissionDeniedException authorization failure
2077      */
2078     public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByIds(@WebParam(name = "activityOfferingClusterIds") List<String> activityOfferingClusterIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2079 
2080     /**
2081      * Retrieves a list of ActivityOfferingClusters associated with a
2082      * FormatOffering
2083      *
2084      * @param formatOfferingId Id of the FormatOffering
2085      * @param contextInfo      Context information containing the principalId
2086      *                         and locale information about the caller of
2087      *                         service operation
2088      * @return List of ActivityOffering
2089      * @throws DoesNotExistException     courseOfferingId not found
2090      * @throws InvalidParameterException invalid contextInfo
2091      * @throws MissingParameterException formatOfferingId or contextInfo is
2092      *                                   missing or null
2093      * @throws OperationFailedException  unable to complete request
2094      * @throws PermissionDeniedException an authorization failure occurred
2095      */
2096     public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2097 
2098     /**
2099      * Retrieves a list of ActivityOfferingCluster Id's associated with a
2100      * FormatOffering
2101      *
2102      * @param formatOfferingId Id of the FormatOffering
2103      * @param contextInfo      Context information containing the principalId
2104      *                         and locale information about the caller of
2105      *                         service operation
2106      * @return List of ActivityOffering Id's
2107      * @throws DoesNotExistException     courseOfferingId not found
2108      * @throws InvalidParameterException invalid contextInfo
2109      * @throws MissingParameterException formatOfferingId or contextInfo is
2110      *                                   missing or null
2111      * @throws OperationFailedException  unable to complete request
2112      * @throws PermissionDeniedException an authorization failure occurred
2113      */
2114     public List<String> getActivityOfferingClustersIdsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2115 
2116     /**
2117      * Validates an Activity Offering Cluster. Depending on the value of
2118      * validationTypeKey, this validation could be limited to tests on just the
2119      * current object and its directly contained sub-objects or expanded to
2120      * perform all tests related to this object. If an identifier is present for
2121      * the academic calendar and a record is found for that identifier, the
2122      * validation checks if the academic calendar can be shifted to the new
2123      * values. If a record cannot be found for the identifier, it is assumed
2124      * that the record does not exist and as such, the checks performed will be
2125      * much shallower, typically mimicking those performed by setting the
2126      * validationTypeKey to the current object. This is a slightly different
2127      * pattern from the standard validation as the caller provides the
2128      * identifier in the create statement instead of the server assigning an
2129      * identifier.
2130      *
2131      * @param validationTypeKey           Identifier of the extent of
2132      *                                    validation
2133      * @param formatOfferingId            Format Offering identifier
2134      * @param activityOfferingClusterInfo the Activity Offering Cluster
2135      *                                    information to be validated.
2136      * @param contextInfo                 Context information containing the
2137      *                                    principalId and locale information
2138      *                                    about the caller of service operation
2139      * @return the results from performing the validation
2140      * @throws DoesNotExistException     validationTypeKey or activityOfferingClusterTypeKey
2141      *                                   not found
2142      * @throws InvalidParameterException invalid activityOfferingClusterInfo or
2143      *                                   contextInfo
2144      * @throws MissingParameterException validationTypeKey, activityOfferingClusterTypeKey,
2145      *                                   activityOfferingClusterInfo or
2146      *                                   contextInfo is missing or null
2147      * @throws OperationFailedException  unable to complete request
2148      * @throws PermissionDeniedException authorization failure
2149      */
2150     public List<ValidationResultInfo> validateActivityOfferingCluster(@WebParam(name = "validationTypeKey") String validationTypeKey, 
2151             @WebParam(name = "formatOfferingId") String formatOfferingId, 
2152             @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, 
2153             @WebParam(name = "contextInfo") ContextInfo contextInfo) 
2154             throws DoesNotExistException, 
2155             InvalidParameterException, 
2156             MissingParameterException, 
2157             OperationFailedException,
2158             PermissionDeniedException;
2159 
2160     /**
2161      * Creates a new Activity Offering Cluster from the given Format Offering
2162      *
2163      * @param formatOfferingId               Format Offering identifier
2164      * @param activityOfferingClusterTypeKey Activity Offering Cluster type
2165      * @param activityOfferingClusterInfo    Details of the ActivityOfferingCluster
2166      *                                       to be created
2167      * @param contextInfo                    Context information containing the
2168      *                                       principalId and locale information
2169      *                                       about the caller of service
2170      *                                       operation
2171      * @return newly created ActivityOfferingCluster
2172      * @throws DataValidationErrorException supplied data is invalid
2173      * @throws DoesNotExistException        validationTypeKey or activityOfferingClusterTypeKey
2174      *                                      not found
2175      * @throws InvalidParameterException    invalid activityOfferingClusterInfo
2176      *                                      or contextInfo
2177      * @throws MissingParameterException    validationTypeKey, activityOfferingClusterTypeKey
2178      *                                      or activityOfferingClusterInfo is
2179      *                                      missing or null
2180      * @throws OperationFailedException     unable to complete request
2181      * @throws PermissionDeniedException    an authorization failure has
2182      *                                      occurred
2183      * @throws ReadOnlyException            an attempt at supplying information
2184      *                                      designated as read only
2185      */
2186     public ActivityOfferingClusterInfo createActivityOfferingCluster(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterTypeKey") String activityOfferingClusterTypeKey, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
2187 
2188     /**
2189      * Updates an ActivityOfferingCluster based on the info object
2190      *
2191      * @param formatOfferingId            Format Offering identifier
2192      * @param activityOfferingClusterId   Identifier of the Activity Offering
2193      *                                    Cluster
2194      * @param activityOfferingClusterInfo ActivityOfferingCluster with new
2195      *                                    information
2196      * @param contextInfo                 Context information containing the
2197      *                                    principalId and locale information
2198      *                                    about the caller of service operation
2199      * @return updated ActivityOfferingCluster
2200      * @throws DataValidationErrorException supplied data is invalid
2201      * @throws DoesNotExistException        activityOfferingClusterId does not
2202      *                                      exist
2203      * @throws InvalidParameterException    Invalid activityOfferingClusterInfo
2204      * @throws MissingParameterException    activityOfferingClusterId or
2205      *                                      activityOfferingClusterInfo is
2206      *                                      missing or null
2207      * @throws OperationFailedException     unable to complete request
2208      * @throws PermissionDeniedException    an authorization failure has
2209      *                                      occurred
2210      * @throws ReadOnlyException            an attempt at supplying information
2211      *                                      designated as read only
2212      * @throws VersionMismatchException     optimistic locking failure or the
2213      *                                      action was attempted on an out of
2214      *                                      date version
2215      */
2216     public ActivityOfferingClusterInfo updateActivityOfferingCluster(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
2217 
2218     /**
2219      * Changes the state of an existing ActivityOfferingCluster to another state
2220      * provided that it is valid to do so.
2221      *
2222      * @param activityOfferingClusterId Id of the ActivityOfferingCluster to be
2223      *                                  changed.
2224      * @param nextStateKey              The State Key into which the identified
2225      *                                  ActivityOfferingCluster will be placed
2226      *                                  if the operation succeeds.
2227      * @param contextInfo               Context information containing the
2228      *                                  principalId and locale information about
2229      *                                  the caller of service operation
2230      * @return status of the operation (success, failed)
2231      * @throws DoesNotExistException     the identified ActivityOfferingCluster
2232      *                                   does not exist
2233      * @throws InvalidParameterException the contextInfo object is invalid
2234      * @throws MissingParameterException One or more parameters missing
2235      * @throws OperationFailedException  unable to complete request
2236      * @throws PermissionDeniedException authorization failure
2237      */
2238     public StatusInfo changeActivityOfferingClusterState(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2239 
2240     /**
2241      * Deletes an activity offering cluster  based on the identifier
2242      *
2243      * @param activityOfferingClusterId Identifier of the Activity Offering
2244      *                                  Cluster
2245      * @param contextInfo               Context information containing the
2246      *                                  principalId and locale information about
2247      *                                  the caller of service operation
2248      * @return status of the operation (success, failed)
2249      * @throws DoesNotExistException          activityOfferingClusterId does not
2250      *                                        exist
2251      * @throws InvalidParameterException      Invalid contextInfo
2252      * @throws MissingParameterException      activityOfferingClusterId or
2253      *                                        contextInfo is missing or null
2254      * @throws OperationFailedException       unable to complete request
2255      * @throws PermissionDeniedException      an authorization failure has
2256      *                                        occurred
2257      * @throws DependentObjectsExistException Registration Groups exist for this
2258      *                                        cluster which prevents the delete
2259      *                                        from occuring.
2260      */
2261     public StatusInfo deleteActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
2262 
2263     /**
2264      * Deletes an existing ActivityOfferingCluster cascaded style. Deleting an
2265      * activity offering cluster cascaded style would also delete all the
2266      * registration groups associated with it.
2267      *
2268      * @param activityOfferingClusterId the Id of the ActivityOfferingCluster to
2269      *                                  be deleted
2270      * @param contextInfo               Context information containing the
2271      *                                  principalId and locale information about
2272      *                                  the caller of service operation
2273      * @return status of the operation (success, failed)
2274      * @throws DoesNotExistException     the identified Activity o does not
2275      *                                   exist
2276      * @throws InvalidParameterException One or more parameters invalid
2277      * @throws MissingParameterException One or more parameters missing
2278      * @throws OperationFailedException  unable to complete request
2279      * @throws PermissionDeniedException authorization failure
2280      */
2281     public StatusInfo deleteActivityOfferingClusterCascaded(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2282 
2283     /**
2284      * Verifies an Activity Offering Cluster's completeness for the generation
2285      * of Registration Group's.
2286      * 
2287      * The distinction between <b>validateActivityOfferingCluster</b> and this 
2288      * method is that <b>validate</b> checks if its OK to save the object where
2289      * as <b>verify</b> checks a saved object in relation to other saved objects.
2290      * 
2291      * <p></p>
2292      * <b>validate</b> is called for every <b>create</b> and <b>update</b> and 
2293      * needs to execute quickly where as this method can take longer to 
2294      * accurately evaluate the specified Activity Offering Cluster.
2295      * 
2296      * @param activityOfferingClusterId Activity Offering Cluster to be
2297      *                                  verified
2298      * @param contextInfo               Context information containing the
2299      *                                  principalId and locale information about
2300      *                                  the caller of service operation
2301      * @return Information gleaned from verifying the ActivityOfferingCluster
2302      * @throws DoesNotExistException     activityOfferingClusterId not found
2303      * @throws InvalidParameterException invalid contextInfo
2304      * @throws MissingParameterException activityOfferingClusterId or
2305      *                                   contextInfo is missing or null
2306      * @throws OperationFailedException  unable to complete request
2307      * @throws PermissionDeniedException authorization failure
2308      * @impl See https://wiki.kuali.org/display/STUDENT/Reg+Group+Verification
2309      */
2310     public AOClusterVerifyResultsInfo verifyActivityOfferingClusterForGeneration(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2311 
2312     /**
2313      * Searches for Activity Offering Clusters that meet the given search criteria.
2314      *
2315      * @param criteria    the search criteria
2316      * @param contextInfo information containing the principalId and locale
2317      *                    information about the caller of service operation
2318      * @return a list of CourseOffering Ids matching the criteria
2319      * @throws InvalidParameterException criteria or contextInfo is not valid
2320      * @throws MissingParameterException criteria or contextInfo is missing or
2321      *                                   null
2322      * @throws OperationFailedException  unable to complete request
2323      * @throws PermissionDeniedException an authorization failure occurred
2324      */
2325     public List<String> searchForActivityOfferingClusterIds(@WebParam(name = "criteria") QueryByCriteria criteria,
2326                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
2327             throws InvalidParameterException,
2328             MissingParameterException,
2329             OperationFailedException,
2330             PermissionDeniedException;
2331 
2332     /**
2333      * Searches for Activity Offering Clusters that meet the given search criteria.
2334      *
2335      * @param criteria    the search criteria
2336      * @param contextInfo information containing the principalId and locale
2337      *                    information about the caller of service operation
2338      * @return a list of CourseOfferings matching the criteria
2339      * @throws InvalidParameterException criteria or contextInfo is not valid
2340      * @throws MissingParameterException criteria or contextInfo is missing or
2341      *                                   null
2342      * @throws OperationFailedException  unable to complete request
2343      * @throws PermissionDeniedException an authorization failure occurred
2344      */
2345     public List<ActivityOfferingClusterInfo> searchForActivityOfferingClusters(@WebParam(name = "criteria") QueryByCriteria criteria,
2346                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
2347             throws InvalidParameterException,
2348             MissingParameterException,
2349             OperationFailedException,
2350             PermissionDeniedException;    
2351     
2352     /**
2353      * Retrieve information about a SeatPoolDefinition
2354      *
2355      * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition
2356      * @param context              Context information containing the
2357      *                             principalId and locale information about the
2358      *                             caller of service operation
2359      * @return SeatPoolDefinition associated with the passed in Id
2360      * @throws DoesNotExistException     seatPoolDefinitionId not found
2361      * @throws InvalidParameterException invalid seatPoolDefinitionId
2362      * @throws MissingParameterException missing seatPoolDefinitionId
2363      * @throws OperationFailedException  unable to complete request
2364      * @throws PermissionDeniedException authorization failure
2365      */
2366     public SeatPoolDefinitionInfo getSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2367 
2368     /**
2369      * Retrieves a list of SeatPoolDefinitions records that belongs to an
2370      * ActivityOffering. This should return SeatPoolDefinitions that apply
2371      * globally across all RegistrationGroups in the ActivityOffering.
2372      *
2373      * @param activityOfferingId Unique Id of the ActivityOffering
2374      * @param context            Context information containing the principalId
2375      *                           and locale information about the caller of
2376      *                           service operation
2377      * @return List of SeatPoolDefinitions
2378      * @throws DoesNotExistException     No ActivityOffering found for the specified activityOfferingId
2379      * @throws InvalidParameterException context is null
2380      * @throws MissingParameterException one or more missing parameters
2381      * @throws OperationFailedException  unable to complete request
2382      * @throws PermissionDeniedException authorization failure
2383      */
2384     public List<SeatPoolDefinitionInfo> getSeatPoolDefinitionsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2385 
2386     /**
2387      * Retrieves a list of ActivityOffering records that are associated to a specific
2388      * SeatPoolDefinition. 
2389      *
2390      * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition
2391      * @param context            Context information containing the principalId
2392      *                           and locale information about the caller of
2393      *                           service operation
2394      * @return List of ActivityOfferings
2395      * @throws DoesNotExistException     no seat pool exists for seatPoolDefinitionId
2396      * @throws InvalidParameterException contextInfo is null.
2397      * @throws MissingParameterException missing seatPoolDefinitionId
2398      * @throws OperationFailedException  unable to complete request
2399      * @throws PermissionDeniedException authorization failure
2400      */
2401     public List<ActivityOfferingInfo> getActivityOfferingsForSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2402 
2403     /**
2404      * Searches for SeatPoolDefinitions that meet the given search criteria.
2405      *
2406      * @param criteria    the search criteria
2407      * @param contextInfo context information containing the principalId and
2408      *                    locale information about the caller of service
2409      *                    operation
2410      * @return a list of SeatPoolDefinition Ids matching the criteria
2411      * @throws InvalidParameterException criteria or contextInfo is not valid
2412      * @throws MissingParameterException criteria or contextInfo is missing or
2413      *                                   null
2414      * @throws OperationFailedException  unable to complete request
2415      * @throws PermissionDeniedException an authorization failure occurred
2416      */
2417     public List<String> searchForSeatpoolDefinitionIds(@WebParam(name = "criteria") QueryByCriteria criteria,
2418                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
2419             throws InvalidParameterException,
2420             MissingParameterException,
2421             OperationFailedException,
2422             PermissionDeniedException;
2423 
2424     /**
2425      * Searches for SeatPoolDefinitions that meet the given search criteria.
2426      *
2427      * @param criteria    the search criteria
2428      * @param contextInfo context information containing the principalId and
2429      *                    locale information about the caller of service
2430      *                    operation
2431      * @return a list of SeatPoolDefinitions matching the criteria
2432      * @throws InvalidParameterException criteria or contextInfo is not valid
2433      * @throws MissingParameterException criteria or contextInfo is missing or
2434      *                                   null
2435      * @throws OperationFailedException  unable to complete request
2436      * @throws PermissionDeniedException an authorization failure occurred
2437      */
2438     public List<SeatPoolDefinitionInfo> searchForSeatpoolDefinitions(@WebParam(name = "criteria") QueryByCriteria criteria,
2439                                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo)
2440             throws InvalidParameterException,
2441             MissingParameterException,
2442             OperationFailedException,
2443             PermissionDeniedException;
2444 
2445     /**
2446      * Creates a new Seat Pool
2447      *
2448      * @param seatPoolDefinitionInfo Details of the SeatPoolDefinition to be
2449      *                               created
2450      * @param context                Context information containing the
2451      *                               principalId and locale information about
2452      *                               the caller of service operation
2453      * @return newly created SeatPoolDefinition
2454      * @throws DataValidationErrorException One or more values invalid for this
2455      *                                      operation
2456      * @throws InvalidParameterException    One or more parameters invalid
2457      * @throws MissingParameterException    One or more parameters missing
2458      * @throws OperationFailedException     unable to complete request
2459      * @throws PermissionDeniedException    authorization failure
2460      */
2461     public SeatPoolDefinitionInfo createSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
2462 
2463     /**
2464      * Updates an existing SeatPoolDefinition.
2465      *
2466      * @param seatPoolDefinitionId   Id of SeatPoolDefinition to be updated
2467      * @param seatPoolDefinitionInfo Details of updates to the SeatPoolDefinition
2468      * @param context                Context information containing the
2469      *                               principalId and locale information about
2470      *                               the caller of service operation
2471      * @return updated SeatPoolDefinition
2472      * @throws DataValidationErrorException One or more values invalid for this
2473      *                                      operation
2474      * @throws DoesNotExistException        the SeatPoolDefinition does not
2475      *                                      exist
2476      * @throws InvalidParameterException    One or more parameters invalid
2477      * @throws MissingParameterException    One or more parameters missing
2478      * @throws OperationFailedException     unable to complete request
2479      * @throws PermissionDeniedException    authorization failure
2480      * @throws VersionMismatchException     The action was attempted on an out
2481      *                                      of date version.
2482      */
2483     public SeatPoolDefinitionInfo updateSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
2484 
2485     /**
2486      * Changes the state of an existing SeatPoolDefinition to another state
2487      * provided that it is valid to do so.
2488      *
2489      * @param seatPoolDefinitionId Id of the SeatPoolDefinition to be changed.
2490      * @param nextStateKey         The State Key into which the identified
2491      *                             SeatPoolDefinition will be placed if the
2492      *                             operation succeeds.
2493      * @param contextInfo          Context information containing the
2494      *                             principalId and locale information about the
2495      *                             caller of service operation
2496      * @return status of the operation (success, failed)
2497      * @throws DoesNotExistException     the identified SeatPoolDefinition does
2498      *                                   not exist
2499      * @throws InvalidParameterException the contextInfo object is invalid
2500      * @throws MissingParameterException One or more parameters missing
2501      * @throws OperationFailedException  unable to complete request
2502      * @throws PermissionDeniedException authorization failure
2503      */
2504     public StatusInfo changeSeatPoolDefinitionState(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2505 
2506     /**
2507      * Validate a seat pool definition
2508      *
2509      * @param validationTypeKey * @param seatPoolDefinitionInfo
2510      * @param context              Context information containing the
2511      *                             principalId and locale information about the
2512      *                             caller of service operation
2513      * @throws DoesNotExistException if validation type key is not found
2514      * @throws InvalidParameterException the context or object is invalid
2515      * @throws MissingParameterException One or more parameters missing
2516      * @throws OperationFailedException unable to complete request
2517      * @throws PermissionDeniedException authorization failure
2518      */
2519     public List<ValidationResultInfo> validateSeatPoolDefinition(@WebParam(name = "validationTypeKey") String validationTypeKey, 
2520             @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, 
2521             @WebParam(name = "context") ContextInfo context) 
2522             throws DoesNotExistException, 
2523             InvalidParameterException, 
2524             MissingParameterException, 
2525             OperationFailedException, 
2526             PermissionDeniedException;
2527 
2528     /**
2529      * Deletes an existing SeatPoolDefinition.
2530      *
2531      * @param seatPoolDefinitionId the Id of the SeatPoolDefinition to be
2532      *                             deleted
2533      * @param context              Context information containing the
2534      *                             principalId and locale information about the
2535      *                             caller of service operation
2536      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
2537      * @throws InvalidParameterException One or more parameters invalid
2538      * @throws MissingParameterException One or more parameters missing
2539      * @throws OperationFailedException  unable to complete request
2540      * @throws PermissionDeniedException authorization failure
2541      */
2542     public StatusInfo deleteSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2543 
2544     /**
2545      * Add a SeatPoolDefinition to an ActivityOffering
2546      *
2547      * @param seatPoolDefinitionId a unique identifier for a SeatPoolDefinition
2548      * @param activityOfferingId   a unique identifier for an ActivityOffering
2549      * @param contextInfo          Context information containing the
2550      *                             principalId and locale information about the
2551      *                             caller of service operation
2552      * @return status
2553      * @throws AlreadyExistsException    seatPoolDefinitionId already related to
2554      *                                   activityOfferingId
2555      * @throws DoesNotExistException     seatPoolDefinitionId or activityOfferingId
2556      *                                   not found
2557      * @throws InvalidParameterException invalid seatPoolDefinitionId,
2558      *                                   activityOfferingId, or contextInfo
2559      * @throws MissingParameterException missing seatPoolDefinitionId,
2560      *                                   activityOfferingId, or contextInfo
2561      * @throws OperationFailedException  unable to complete request
2562      * @throws PermissionDeniedException authorization failure
2563      */
2564     public StatusInfo addSeatPoolDefinitionToActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId,
2565                                                               @WebParam(name = "activityOfferingId") String activityOfferingId,
2566                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
2567             throws AlreadyExistsException,
2568             DoesNotExistException,
2569             InvalidParameterException,
2570             MissingParameterException,
2571             OperationFailedException,
2572             PermissionDeniedException;
2573 
2574     /**
2575      * Removes a SeatPoolDefinition from an ActivityOffering.
2576      *
2577      * @param seatPoolDefinitionId a unique identifier for a SeatPoolDefinition
2578      * @param activityOfferingId   a unique identifier for an ActivityOffering
2579      * @param contextInfo          Context information containing the
2580      *                             principalId and locale information about the
2581      *                             caller of service operation
2582      * @return status
2583      * @throws DoesNotExistException     seatPoolDefinitionId or activityOfferingId
2584      *                                   not found
2585      * @throws InvalidParameterException invalid seatPoolDefinitionId,
2586      *                                   activityOfferingId, or contextInfo
2587      * @throws MissingParameterException missing seatPoolDefinitionId,
2588      *                                   activityOfferingId, or contextInfo
2589      * @throws OperationFailedException  unable to complete request
2590      * @throws PermissionDeniedException authorization failure
2591      */
2592     public StatusInfo removeSeatPoolDefinitionFromActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId,
2593                                                                    @WebParam(name = "activityOfferingId") String activityOfferingId,
2594                                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
2595             throws DoesNotExistException,
2596             InvalidParameterException,
2597             MissingParameterException,
2598             OperationFailedException,
2599             PermissionDeniedException;
2600 
2601 
2602 
2603     /**
2604      * This is a bulk create method for generateRegistrationGroupsForAOC().  Instead of working on a single Activity Offering Cluster it will
2605      * work on all of the AOC's of the format offering specified.
2606      * 
2607      * @param formatOfferingId The identifier of the format offering to generate registration groups for.
2608      * @param contextInfo Context information containing the principalId and locale information about the caller of service operation 
2609      * @return status of the operation (success, failed) for each Registration Group created. 
2610      * @throws DoesNotExistException The formatOfferingId does not refer to an existing FormatOffering.
2611      * @throws InvalidParameterException The formatOfferingId or context is invalid.
2612      * @throws MissingParameterException the formatOfferingId or context is missing.
2613      * @throws OperationFailedException unable to complete request, can also occur when verification of any AOC in the format offering fails.
2614      * @throws PermissionDeniedException authorization failure
2615      * @throws DataValidationErrorException verification of any of the underlying Activity Offering Cluster's failed.
2616      */
2617     public List<BulkStatusInfo> generateRegistrationGroupsForFormatOffering(@WebParam (name="formatOfferingId")
2618             String formatOfferingId,  @WebParam(name = "contextInfo") ContextInfo contextInfo)
2619             throws DoesNotExistException, InvalidParameterException,
2620             MissingParameterException, OperationFailedException,
2621             PermissionDeniedException, DataValidationErrorException;
2622     
2623     /**
2624      * Generates all possible registration groups for the Activity Offering
2625      * Cluster
2626      *
2627      * @param activityOfferingClusterId identifier of the Activity Offering
2628      *                                  Cluster
2629      * @param contextInfo               Context information containing the
2630      *                                  principalId and locale information about
2631      *                                  the caller of service operation
2632      * @return status of the operation (success, failed) for each Registration Group created.
2633      * @throws DoesNotExistException     activityOfferingClusterId does not
2634      *                                   exist
2635      * @throws DataValidationErrorException verification of the Activity Offering Cluster failed.
2636      * @throws InvalidParameterException invalid contextInfo
2637      * @throws MissingParameterException activityOfferingClusterId or
2638      *                                   contextInfo is missing or null
2639      * @throws OperationFailedException  unable to complete request
2640      * @throws PermissionDeniedException an authorization failure has occurred
2641      * @impl Does 'delta' generation: Creates only new RGs
2642      */
2643     public List<BulkStatusInfo> generateRegistrationGroupsForCluster( @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId,  @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
2644 
2645 }