Coverage Report - org.kuali.student.r2.core.scheduling.service.SchedulingService
 
Classes in this File Line Coverage Branch Coverage Complexity
SchedulingService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2012 The Kuali Foundation Licensed under the
 3  
  *  Educational Community License, Version 2.0 (the "License"); you may
 4  
  *  not use this file except in compliance with the License. You may
 5  
  *  obtain a copy of the License at
 6  
  *
 7  
  *   http://www.osedu.org/licenses/ECL-2.0
 8  
  *
 9  
  *  Unless required by applicable law or agreed to in writing,
 10  
  *  software distributed under the License is distributed on an "AS IS"
 11  
  *  BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 12  
  *  or implied. See the License for the specific language governing
 13  
  *  permissions and limitations under the License.
 14  
  */
 15  
 
 16  
 package org.kuali.student.r2.core.scheduling.service;
 17  
 
 18  
 import org.kuali.rice.core.api.criteria.QueryByCriteria;
 19  
 import org.kuali.student.r2.common.dto.ContextInfo;
 20  
 import org.kuali.student.r2.common.dto.StatusInfo;
 21  
 import org.kuali.student.r2.common.dto.TimeAmountInfo;
 22  
 import org.kuali.student.r2.common.dto.TimeOfDayInfo;
 23  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 24  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 25  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 26  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 27  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 28  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 29  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 30  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 31  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 32  
 import org.kuali.student.r2.core.scheduling.constants.SchedulingServiceConstants;
 33  
 import org.kuali.student.r2.core.scheduling.dto.ScheduleBatchInfo;
 34  
 import org.kuali.student.r2.core.scheduling.dto.ScheduleBatchResponseInfo;
 35  
 import org.kuali.student.r2.core.scheduling.dto.ScheduleInfo;
 36  
 import org.kuali.student.r2.core.scheduling.dto.ScheduleRequestInfo;
 37  
 import org.kuali.student.r2.core.scheduling.dto.ScheduleResponseInfo;
 38  
 import org.kuali.student.r2.core.scheduling.dto.TimeSlotInfo;
 39  
 
 40  
 import javax.jws.WebParam;
 41  
 import javax.jws.WebService;
 42  
 import javax.jws.soap.SOAPBinding;
 43  
 import java.util.List;
 44  
 
 45  
 /**
 46  
  * @Version 1.0
 47  
  * @Author Sri komandur@uw.edu
 48  
  */
 49  
 @WebService(name = "SchedulingService", serviceName = "SchedulingService", portName = "SchedulingService", targetNamespace = SchedulingServiceConstants.NAMESPACE)
 50  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 51  
 public interface SchedulingService {
 52  
 
 53  
     /**
 54  
      * Retrieves a Schedule
 55  
      *
 56  
      * @param scheduleId  unique Id of a Schedule
 57  
      * @param contextInfo Context information containing the principalId and
 58  
      *                    locale information about the caller of service
 59  
      *                    operation
 60  
      * @return the Schedule
 61  
      * @throws DoesNotExistException     scheduleId not found
 62  
      * @throws InvalidParameterException invalid contextInfo
 63  
      * @throws MissingParameterException scheduleId or contextInfo is missing or
 64  
      *                                   null
 65  
      * @throws OperationFailedException  unable to complete request
 66  
      * @throws PermissionDeniedException an authorization failure occurred
 67  
      */
 68  
     public ScheduleInfo getSchedule(@WebParam(name = "scheduleId") String scheduleId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 69  
 
 70  
     /**
 71  
      * Retrieves a list of Schedules corresponding to the given list of Schedule
 72  
      * Ids.
 73  
      *
 74  
      * @param scheduleIds list of Schedules to be retrieved
 75  
      * @param contextInfo Context information containing the principalId and
 76  
      *                    locale information about the caller of service
 77  
      *                    operation
 78  
      * @return a list of Schedules
 79  
      * @throws DoesNotExistException     a scheduleId in list not found
 80  
      * @throws InvalidParameterException invalid contextInfo
 81  
      * @throws MissingParameterException missing scheduleId or contextInfo is
 82  
      *                                   missing or null
 83  
      * @throws OperationFailedException  unable to complete request
 84  
      * @throws PermissionDeniedException an authorization failure occurred
 85  
      */
 86  
     public List<ScheduleInfo> getSchedulesByIds(@WebParam(name = "scheduleIds") List<String> scheduleIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 87  
 
 88  
     /**
 89  
      * Retrieves a list of Schedule Ids by Schedule Type.
 90  
      *
 91  
      * @param scheduleTypeKey an identifier for a Schedule Type
 92  
      * @param contextInfo     Context information containing the principalId and
 93  
      *                        locale information about the caller of service
 94  
      *                        operation
 95  
      * @return a list of Schedule identifiers matching scheduleTypeKey or an
 96  
      *         empty list if none found
 97  
      * @throws InvalidParameterException invalid contextInfo
 98  
      * @throws MissingParameterException scheduleTypeKey or contextInfo is
 99  
      *                                   missing or null
 100  
      * @throws OperationFailedException  unable to complete request
 101  
      * @throws PermissionDeniedException an authorization failure occurred
 102  
      */
 103  
     public List<String> getScheduleIdsByType(@WebParam(name = "scheduleTypeKey") String scheduleTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 104  
 
 105  
     /**
 106  
      * Searches for Schedules based on the criteria and returns a list of
 107  
      * Schedule identifiers which match the search criteria.
 108  
      *
 109  
      * @param criteria    the search criteria
 110  
      * @param contextInfo Context information containing the principalId and
 111  
      *                    locale information about the caller of service
 112  
      *                    operation
 113  
      * @return list of Schedule Ids
 114  
      * @throws InvalidParameterException invalid criteria or contextInfo
 115  
      * @throws MissingParameterException missing criteria or contextInfo
 116  
      * @throws OperationFailedException  unable to complete request
 117  
      * @throws PermissionDeniedException authorization failure
 118  
      */
 119  
     public List<String> searchForScheduleIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 120  
 
 121  
     /**
 122  
      * Searches for Schedules based on the criteria and returns a list of
 123  
      * Schedules which match the search criteria.
 124  
      *
 125  
      * @param criteria    the search criteria
 126  
      * @param contextInfo Context information containing the principalId and
 127  
      *                    locale information about the caller of service
 128  
      *                    operation
 129  
      * @return list of Schedules
 130  
      * @throws InvalidParameterException invalid criteria or contextInfo
 131  
      * @throws MissingParameterException missing criteria or contextInfo
 132  
      * @throws OperationFailedException  unable to complete request
 133  
      * @throws PermissionDeniedException authorization failure
 134  
      */
 135  
     public List<ScheduleInfo> searchForSchedules(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 136  
 
 137  
     /**
 138  
      * Validates a Schedule. Depending on the value of validationType, this
 139  
      * validation could be limited to tests on just the current Schedule and its
 140  
      * directly contained sub-objects or expanded to perform all tests related
 141  
      * to this Schedule. If an identifier is present for the Schedule (and/or
 142  
      * one of its contained sub-objects) and a record is found for that
 143  
      * identifier, the validation checks if the Schedule can be updated to the
 144  
      * new values. If an identifier is not present or a record does not exist,
 145  
      * the validation checks if the object with the given data can be created.
 146  
      *
 147  
      * @param validationTypeKey the identifier for the validation Type
 148  
      * @param scheduleTypeKey   the identifier for the schedule Type
 149  
      * @param scheduleInfo      detailed information about the schedule
 150  
      * @param contextInfo       Context information containing the principalId
 151  
      *                          and locale information about the caller of
 152  
      *                          service operation
 153  
      * @return a list of validation results or an empty list if validation
 154  
      *         succeeded
 155  
      * @throws DoesNotExistException     validationTypeKey, scheduleId, not
 156  
      *                                   found
 157  
      * @throws InvalidParameterException invalid scheduleInfo or contextInfo
 158  
      * @throws MissingParameterException validationTypeKey, scheduleId or
 159  
      *                                   contextInfo is missing or null
 160  
      * @throws OperationFailedException  unable to complete request
 161  
      * @throws PermissionDeniedException an authorization failure occurred
 162  
      */
 163  
     public List<ValidationResultInfo> validateSchedule(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "scheduleTypeKey") String scheduleTypeKey, @WebParam(name = "scheduleInfo") ScheduleInfo scheduleInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 164  
 
 165  
     /**
 166  
      * Creates a Schedule
 167  
      *
 168  
      * @param scheduleTypeKey the identifier for the schedule Type
 169  
      * @param scheduleInfo    detailed information about the schedule
 170  
      * @param contextInfo     Context information containing the principalId and
 171  
      *                        locale information about the caller of service
 172  
      *                        operation
 173  
      * @return detailed information about the schedule
 174  
      * @throws DataValidationErrorException supplied data is invalid
 175  
      * @throws DoesNotExistException        scheduleId does not exist
 176  
      * @throws InvalidParameterException    invalid scheduleInfo or contextInfo
 177  
      * @throws MissingParameterException    scheduleId or contextInfo is missing
 178  
      *                                      or null
 179  
      * @throws OperationFailedException     unable to complete request
 180  
      * @throws PermissionDeniedException    an authorization failure occurred
 181  
      * @throws ReadOnlyException            an attempt at supplying information
 182  
      *                                      designated as read only
 183  
      */
 184  
     public ScheduleInfo createSchedule(@WebParam(name = "scheduleTypeKey") String scheduleTypeKey, @WebParam(name = "scheduleInfo") ScheduleInfo scheduleInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 185  
 
 186  
     /**
 187  
      * Updates a schedule.
 188  
      *
 189  
      * @param scheduleId   identifier of the schedule  to be updated
 190  
      * @param scheduleInfo information about the object scheduleInfo to be
 191  
      *                     updated
 192  
      * @param contextInfo  context information containing the principalId and
 193  
      *                     locale information about the caller of service
 194  
      *                     operation
 195  
      * @return updated schedule information
 196  
      * @throws DataValidationErrorException one or more values invalid for this
 197  
      *                                      operation
 198  
      * @throws DoesNotExistException        scheduleId not found
 199  
      * @throws InvalidParameterException    invalid scheduleInfo or contextInfo
 200  
      * @throws MissingParameterException    scheduleId, scheduleInfo or
 201  
      *                                      contextInfo is missing or null
 202  
      * @throws OperationFailedException     unable to complete request
 203  
      * @throws PermissionDeniedException    an authorization failure occurred
 204  
      * @throws ReadOnlyException            an attempt at supplying information
 205  
      *                                      designated as read-only
 206  
      * @throws VersionMismatchException     optimistic locking failure or the
 207  
      *                                      action was attempted on an out of
 208  
      *                                      date version
 209  
      */
 210  
     public ScheduleInfo updateSchedule(@WebParam(name = "scheduleId") String scheduleId, @WebParam(name = "scheduleInfo") ScheduleInfo scheduleInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 211  
 
 212  
     /**
 213  
      * Removes schedule relationship between a person and a slot.
 214  
      *
 215  
      * @param scheduleId  Schedule  identifier
 216  
      * @param contextInfo context information containing the principalId and
 217  
      *                    locale information about the caller of service
 218  
      *                    operation
 219  
      * @return status of the operation (success, failed)
 220  
      * @throws DoesNotExistException     scheduleId not found
 221  
      * @throws InvalidParameterException invalid contextInfo
 222  
      * @throws MissingParameterException scheduleId or contextInfo is missing or
 223  
      *                                   null
 224  
      * @throws OperationFailedException  unable to complete request
 225  
      * @throws PermissionDeniedException an authorization failure occurred
 226  
      */
 227  
     public StatusInfo deleteSchedule(@WebParam(name = "scheduleId") String scheduleId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 228  
 
 229  
     /**
 230  
      * Retrieves a ScheduleBatch
 231  
      *
 232  
      * @param scheduleBatchId a unique Id of a ScheduleBatch
 233  
      * @param contextInfo     Context information containing the principalId and
 234  
      *                        locale information about the caller of service
 235  
      *                        operation
 236  
      * @return the ScheduleBatch
 237  
      * @throws DoesNotExistException     scheduleBatchId not found
 238  
      * @throws InvalidParameterException invalid contextInfo
 239  
      * @throws MissingParameterException scheduleBatchId or contextInfo is
 240  
      *                                   missing or null
 241  
      * @throws OperationFailedException  unable to complete request
 242  
      * @throws PermissionDeniedException an authorization failure occurred
 243  
      */
 244  
     public ScheduleBatchInfo getScheduleBatch(@WebParam(name = "scheduleBatchId") String scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 245  
 
 246  
     /**
 247  
      * Retrieves a list of ScheduleBatches corresponding to the given list of
 248  
      * ScheduleBatch Ids.
 249  
      *
 250  
      * @param scheduleBatchIds list of ScheduleBatches to be retrieved
 251  
      * @param contextInfo      Context information containing the principalId
 252  
      *                         and locale information about the caller of
 253  
      *                         service operation
 254  
      * @return a list of ScheduleBatches
 255  
      * @throws DoesNotExistException     a scheduleBatchId in list not found
 256  
      * @throws InvalidParameterException invalid contextInfo
 257  
      * @throws MissingParameterException missing scheduleBatchId or contextInfo
 258  
      *                                   is missing or null
 259  
      * @throws OperationFailedException  unable to complete request
 260  
      * @throws PermissionDeniedException an authorization failure occurred
 261  
      */
 262  
     public List<ScheduleBatchInfo> getScheduleBatchesByIds(@WebParam(name = "scheduleBatchIds") List<String> scheduleBatchIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 263  
 
 264  
     /**
 265  
      * Retrieves a list of ScheduleBatch Ids by ScheduleBatch Type.
 266  
      *
 267  
      * @param scheduleBatchTypeKey an identifier for a ScheduleBatch Type
 268  
      * @param contextInfo          Context information containing the
 269  
      *                             principalId and locale information about the
 270  
      *                             caller of service operation
 271  
      * @return a list of ScheduleBatch identifiers matching scheduleBatchTypeKey
 272  
      *         or an empty list if none found
 273  
      * @throws InvalidParameterException invalid contextInfo
 274  
      * @throws MissingParameterException scheduleBatchTypeKey or contextInfo is
 275  
      *                                   missing or null
 276  
      * @throws OperationFailedException  unable to complete request
 277  
      * @throws PermissionDeniedException an authorization failure occurred
 278  
      */
 279  
     public List<String> getScheduleBatchIdsByType(@WebParam(name = "scheduleBatchTypeKey") String scheduleBatchTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 280  
 
 281  
     /**
 282  
      * Retrieves a list of ScheduleBatches associated with a ScheduleRequest
 283  
      *
 284  
      * @param scheduleRequestId an identifier for a ScheduleBatch
 285  
      * @param contextInfo       Context information containing the principalId
 286  
      *                          and locale information about the caller of
 287  
      *                          service operation
 288  
      * @return a list of ScheduleRequest identifiers matching
 289  
      *         scheduleRequestTypeKey or an empty list if none found
 290  
      * @throws InvalidParameterException invalid contextInfo
 291  
      * @throws MissingParameterException scheduleRequestTypeKey or contextInfo
 292  
      *                                   is missing or null
 293  
      * @throws OperationFailedException  unable to complete request
 294  
      * @throws PermissionDeniedException an authorization failure occurred
 295  
      */
 296  
     public List<ScheduleBatchInfo> getScheduleBatchesForScheduleRequest(@WebParam(name = "scheduleRequestId") String scheduleRequestId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 297  
 
 298  
     /**
 299  
      * Searches for ScheduleBatches based on the criteria and returns a list of
 300  
      * ScheduleBatch identifiers which match the search criteria.
 301  
      *
 302  
      * @param criteria    the search criteria
 303  
      * @param contextInfo Context information containing the principalId and
 304  
      *                    locale information about the caller of service
 305  
      *                    operation
 306  
      * @return list of ScheduleBatch Ids
 307  
      * @throws InvalidParameterException invalid criteria or contextInfo
 308  
      * @throws MissingParameterException missing criteria or contextInfo
 309  
      * @throws OperationFailedException  unable to complete request
 310  
      * @throws PermissionDeniedException authorization failure
 311  
      */
 312  
     public List<String> searchForScheduleBatchIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 313  
 
 314  
     /**
 315  
      * Searches for ScheduleBatches based on the criteria and returns a list of
 316  
      * ScheduleBatches which match the search criteria.
 317  
      *
 318  
      * @param criteria    the search criteria
 319  
      * @param contextInfo Context information containing the principalId and
 320  
      *                    locale information about the caller of service
 321  
      *                    operation
 322  
      * @return list of ScheduleBatches
 323  
      * @throws InvalidParameterException invalid criteria or contextInfo
 324  
      * @throws MissingParameterException missing criteria or contextInfo
 325  
      * @throws OperationFailedException  unable to complete request
 326  
      * @throws PermissionDeniedException authorization failure
 327  
      */
 328  
     public List<ScheduleBatchInfo> searchForScheduleBatches(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 329  
 
 330  
     /**
 331  
      * Validates a ScheduleBatch. Depending on the value of validationType, this
 332  
      * validation could be limited to tests on just the current ScheduleBatch
 333  
      * and its directly contained sub-objects or expanded to perform all tests
 334  
      * related to this ScheduleBatch. If an identifier is present for the
 335  
      * ScheduleBatch (and/or one of its contained sub-objects) and a record is
 336  
      * found for that identifier, the validation checks if the ScheduleBatch can
 337  
      * be updated to the new values. If an identifier is not present or a record
 338  
      * does not exist, the validation checks if the object with the given data
 339  
      * can be created.
 340  
      *
 341  
      * @param validationTypeKey    the identifier for the validation Type
 342  
      * @param scheduleBatchTypeKey the identifier for the scheduleBatch Type
 343  
      * @param scheduleBatchInfo    detailed information about the scheduleBatch
 344  
      * @param contextInfo          Context information containing the
 345  
      *                             principalId and locale information about the
 346  
      *                             caller of service operation
 347  
      * @return a list of validation results or an empty list if validation
 348  
      *         succeeded
 349  
      * @throws DoesNotExistException     validationTypeKey, scheduleBatchId, not
 350  
      *                                   found
 351  
      * @throws InvalidParameterException invalid scheduleBatchInfo or
 352  
      *                                   contextInfo
 353  
      * @throws MissingParameterException validationTypeKey, scheduleBatchId or
 354  
      *                                   contextInfo is missing or null
 355  
      * @throws OperationFailedException  unable to complete request
 356  
      * @throws PermissionDeniedException an authorization failure occurred
 357  
      */
 358  
     public List<ValidationResultInfo> validateScheduleBatch(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "scheduleBatchTypeKey") String scheduleBatchTypeKey, @WebParam(name = "scheduleBatchInfo") ScheduleBatchInfo scheduleBatchInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 359  
 
 360  
     /**
 361  
      * Creates a ScheduleBatch
 362  
      *
 363  
      * @param scheduleBatchTypeKey the identifier for the scheduleBatch Type
 364  
      * @param scheduleBatchInfo    detailed information about the scheduleBatch
 365  
      * @param contextInfo          Context information containing the
 366  
      *                             principalId and locale information about the
 367  
      *                             caller of service operation
 368  
      * @return detailed information about the scheduleBatch
 369  
      * @throws DataValidationErrorException supplied data is invalid
 370  
      * @throws DoesNotExistException        scheduleBatchId does not exist
 371  
      * @throws InvalidParameterException    invalid scheduleBatchInfo or
 372  
      *                                      contextInfo
 373  
      * @throws MissingParameterException    scheduleBatchId or contextInfo is
 374  
      *                                      missing or null
 375  
      * @throws OperationFailedException     unable to complete request
 376  
      * @throws PermissionDeniedException    an authorization failure occurred
 377  
      * @throws ReadOnlyException            an attempt at supplying information
 378  
      *                                      designated as read only
 379  
      */
 380  
     public ScheduleBatchInfo createScheduleBatch(@WebParam(name = "scheduleBatchTypeKey") String scheduleBatchTypeKey, @WebParam(name = "scheduleBatchInfo") ScheduleBatchInfo scheduleBatchInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 381  
 
 382  
     /**
 383  
      * Updates a scheduleBatch.
 384  
      *
 385  
      * @param scheduleBatchId   identifier of the scheduleBatch to be updated
 386  
      * @param scheduleBatchInfo information about the object scheduleBatchInfo
 387  
      *                          to be updated
 388  
      * @param contextInfo       context information containing the principalId
 389  
      *                          and locale information about the caller of
 390  
      *                          service operation
 391  
      * @return updated scheduleBatch information
 392  
      * @throws DataValidationErrorException one or more values invalid for this
 393  
      *                                      operation
 394  
      * @throws DoesNotExistException        scheduleBatchId not found
 395  
      * @throws InvalidParameterException    invalid scheduleBatchInfo or
 396  
      *                                      contextInfo
 397  
      * @throws MissingParameterException    scheduleBatchId, scheduleBatchInfo
 398  
      *                                      or contextInfo is missing or null
 399  
      * @throws OperationFailedException     unable to complete request
 400  
      * @throws PermissionDeniedException    an authorization failure occurred
 401  
      * @throws ReadOnlyException            an attempt at supplying information
 402  
      *                                      designated as read-only
 403  
      * @throws VersionMismatchException     optimistic locking failure or the
 404  
      *                                      action was attempted on an out of
 405  
      *                                      date version
 406  
      */
 407  
     public ScheduleBatchInfo updateScheduleBatch(@WebParam(name = "scheduleBatchId") String scheduleBatchId, @WebParam(name = "scheduleBatchInfo") ScheduleBatchInfo scheduleBatchInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 408  
 
 409  
     /**
 410  
      * Removes scheduleBatch relationship between a person and a slot.
 411  
      *
 412  
      * @param scheduleBatchId ScheduleBatch  identifier
 413  
      * @param contextInfo     context information containing the principalId and
 414  
      *                        locale information about the caller of service
 415  
      *                        operation
 416  
      * @return status of the operation (success, failed)
 417  
      * @throws DoesNotExistException     scheduleBatchId not found
 418  
      * @throws InvalidParameterException invalid contextInfo
 419  
      * @throws MissingParameterException scheduleBatchId or contextInfo is
 420  
      *                                   missing or null
 421  
      * @throws OperationFailedException  unable to complete request
 422  
      * @throws PermissionDeniedException an authorization failure occurred
 423  
      */
 424  
     public StatusInfo deleteScheduleBatch(@WebParam(name = "scheduleBatchId") String scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 425  
 
 426  
     /**
 427  
      * Adds schedule requests to the batch
 428  
      *
 429  
      * @param scheduleRequestIds schedule requests to be added to the batch
 430  
      * @param scheduleBatchId    batch identifier
 431  
      * @param contextInfo        information containing the principalId and
 432  
      *                           locale information about the caller of service
 433  
      *                           operation
 434  
      * @return status of the operation (success, failed)
 435  
      * @throws DoesNotExistException     one of the scheduleRequestIds or
 436  
      *                                   scheduleBatchId is not found
 437  
      * @throws InvalidParameterException invalid contextInfo
 438  
      * @throws MissingParameterException scheduleRequestIds, scheduleBatchId or
 439  
      *                                   contextInfo is missing or null
 440  
      * @throws OperationFailedException  unable to complete request
 441  
      * @throws PermissionDeniedException an authorization failure occurred
 442  
      */
 443  
     public StatusInfo addScheduleRequestsToScheduleBatch(@WebParam(name = "scheduleRequestIds") List<String> scheduleRequestIds, @WebParam(name = "scheduleBatchId") List<String> scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 444  
 
 445  
     /**
 446  
      * Removes schedule requests from the batch
 447  
      *
 448  
      * @param scheduleRequestIds schedule requests to be added to the batch
 449  
      * @param scheduleBatchId    batch identifier
 450  
      * @param contextInfo        information containing the principalId and
 451  
      *                           locale information about the caller of service
 452  
      *                           operation
 453  
      * @return status of the operation (success, failed)
 454  
      * @throws DoesNotExistException     one of the scheduleRequestIds or
 455  
      *                                   scheduleBatchId is not found
 456  
      * @throws InvalidParameterException invalid contextInfo
 457  
      * @throws MissingParameterException scheduleRequestIds, scheduleBatchId or
 458  
      *                                   contextInfo is missing or null
 459  
      * @throws OperationFailedException  unable to complete request
 460  
      * @throws PermissionDeniedException an authorization failure occurred
 461  
      */
 462  
     public StatusInfo removeScheduleRequestsFromScheduleBatch(@WebParam(name = "scheduleRequestIds") List<String> scheduleRequestIds, @WebParam(name = "scheduleBatchId") List<String> scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 463  
 
 464  
     /**
 465  
      * Retrieves a ScheduleBatchResponse
 466  
      *
 467  
      * @param scheduleBatchResponseId a unique Id of a ScheduleBatchResponse
 468  
      * @param contextInfo             Context information containing the
 469  
      *                                principalId and locale information about
 470  
      *                                the caller of service operation
 471  
      * @return the ScheduleBatchResponse
 472  
      * @throws DoesNotExistException     scheduleBatchResponseId not found
 473  
      * @throws InvalidParameterException invalid contextInfo
 474  
      * @throws MissingParameterException scheduleBatchResponseId or contextInfo
 475  
      *                                   is missing or null
 476  
      * @throws OperationFailedException  unable to complete request
 477  
      * @throws PermissionDeniedException an authorization failure occurred
 478  
      */
 479  
     public ScheduleBatchResponseInfo getScheduleBatchResponse(@WebParam(name = "scheduleBatchResponseId") String scheduleBatchResponseId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 480  
 
 481  
     /**
 482  
      * Retrieves a list of ScheduleBatchResponses corresponding to the given
 483  
      * list of ScheduleBatchResponse Ids.
 484  
      *
 485  
      * @param scheduleBatchResponseIds list of ScheduleBatchResponses to be
 486  
      *                                 retrieved
 487  
      * @param contextInfo              Context information containing the
 488  
      *                                 principalId and locale information about
 489  
      *                                 the caller of service operation
 490  
      * @return a list of ScheduleBatchResponses
 491  
      * @throws DoesNotExistException     a scheduleBatchResponseId in list not
 492  
      *                                   found
 493  
      * @throws InvalidParameterException invalid contextInfo
 494  
      * @throws MissingParameterException missing scheduleBatchResponseId or
 495  
      *                                   contextInfo is missing or null
 496  
      * @throws OperationFailedException  unable to complete request
 497  
      * @throws PermissionDeniedException an authorization failure occurred
 498  
      */
 499  
     public List<ScheduleBatchResponseInfo> getScheduleBatchResponsesByIds(@WebParam(name = "scheduleBatchResponseIds") List<String> scheduleBatchResponseIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 500  
 
 501  
     /**
 502  
      * Retrieves a list of ScheduleBatchResponse Ids by ScheduleBatchResponse
 503  
      * Type.
 504  
      *
 505  
      * @param scheduleBatchResponseTypeKey an identifier for a ScheduleBatchResponse
 506  
      *                                     Type
 507  
      * @param contextInfo                  Context information containing the
 508  
      *                                     principalId and locale information
 509  
      *                                     about the caller of service
 510  
      *                                     operation
 511  
      * @return a list of ScheduleBatchResponse identifiers matching
 512  
      *         scheduleBatchResponseTypeKey or an empty list if none found
 513  
      * @throws InvalidParameterException invalid contextInfo
 514  
      * @throws MissingParameterException scheduleBatchResponseTypeKey or
 515  
      *                                   contextInfo is missing or null
 516  
      * @throws OperationFailedException  unable to complete request
 517  
      * @throws PermissionDeniedException an authorization failure occurred
 518  
      */
 519  
     public List<String> getScheduleBatchResponseIdsByType(@WebParam(name = "scheduleBatchResponseTypeKey") String scheduleBatchResponseTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 520  
 
 521  
     /**
 522  
      * Retrieves a list of ScheduleBatchResponses corresponding to the given
 523  
      * ScheduleBatch
 524  
      *
 525  
      * @param scheduleBatchId batch identifier
 526  
      * @param contextInfo     Context information containing the principalId and
 527  
      *                        locale information about the caller of service
 528  
      *                        operation
 529  
      * @return a list of ScheduleBatchResponses
 530  
      * @throws DoesNotExistException     scheduleBatchId not found
 531  
      * @throws InvalidParameterException invalid contextInfo
 532  
      * @throws MissingParameterException scheduleBatchId or contextInfo is
 533  
      *                                   missing or null
 534  
      * @throws OperationFailedException  unable to complete request
 535  
      * @throws PermissionDeniedException an authorization failure occurred
 536  
      */
 537  
     public List<ScheduleBatchResponseInfo> getScheduleBatchResponsesByScheduleBatchRequest(@WebParam(name = "scheduleBatchId") String scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 538  
 
 539  
     /**
 540  
      * Retrieves a ScheduleRequest
 541  
      *
 542  
      * @param scheduleRequestId a unique Id of a ScheduleRequest
 543  
      * @param contextInfo       Context information containing the principalId
 544  
      *                          and locale information about the caller of
 545  
      *                          service operation
 546  
      * @return the ScheduleRequest
 547  
      * @throws DoesNotExistException     scheduleRequestId not found
 548  
      * @throws InvalidParameterException invalid contextInfo
 549  
      * @throws MissingParameterException scheduleRequestId or contextInfo is
 550  
      *                                   missing or null
 551  
      * @throws OperationFailedException  unable to complete request
 552  
      * @throws PermissionDeniedException an authorization failure occurred
 553  
      */
 554  
     public ScheduleRequestInfo getScheduleRequest(@WebParam(name = "scheduleRequestId") String scheduleRequestId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 555  
 
 556  
     /**
 557  
      * Retrieves a list of ScheduleRequests corresponding to the given list of
 558  
      * ScheduleRequest Ids.
 559  
      *
 560  
      * @param scheduleRequestIds list of ScheduleRequests to be retrieved
 561  
      * @param contextInfo        Context information containing the principalId
 562  
      *                           and locale information about the caller of
 563  
      *                           service operation
 564  
      * @return a list of ScheduleRequests
 565  
      * @throws DoesNotExistException     a scheduleRequestId in list not found
 566  
      * @throws InvalidParameterException invalid contextInfo
 567  
      * @throws MissingParameterException missing scheduleRequestId or
 568  
      *                                   contextInfo is missing or null
 569  
      * @throws OperationFailedException  unable to complete request
 570  
      * @throws PermissionDeniedException an authorization failure occurred
 571  
      */
 572  
     public List<ScheduleRequestInfo> getScheduleRequestsByIds(@WebParam(name = "scheduleRequestIds") List<String> scheduleRequestIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 573  
 
 574  
     /**
 575  
      * Retrieves a list of ScheduleRequest Ids by ScheduleRequest Type.
 576  
      *
 577  
      * @param scheduleRequestTypeKey an identifier for a ScheduleRequest Type
 578  
      * @param contextInfo            Context information containing the
 579  
      *                               principalId and locale information about
 580  
      *                               the caller of service operation
 581  
      * @return a list of ScheduleRequest identifiers matching
 582  
      *         scheduleRequestTypeKey or an empty list if none found
 583  
      * @throws InvalidParameterException invalid contextInfo
 584  
      * @throws MissingParameterException scheduleRequestTypeKey or contextInfo
 585  
      *                                   is missing or null
 586  
      * @throws OperationFailedException  unable to complete request
 587  
      * @throws PermissionDeniedException an authorization failure occurred
 588  
      */
 589  
     public List<String> getScheduleRequestIdsByType(@WebParam(name = "scheduleRequestTypeKey") String scheduleRequestTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 590  
 
 591  
     /**
 592  
      * Retrieves a list of ScheduleRequest Ids by Ref Object Type.
 593  
      *
 594  
      * @param refObjectType an identifier for a ref object Type
 595  
      * @param refObjectId   an
 596  
      * @param contextInfo   Context information containing the principalId and
 597  
      *                      locale information about the caller of service
 598  
      *                      operation
 599  
      * @return a list of ScheduleRequest identifiers matching
 600  
      *         scheduleRequestTypeKey or an empty list if none found
 601  
      * @throws InvalidParameterException invalid contextInfo
 602  
      * @throws MissingParameterException scheduleRequestTypeKey or contextInfo
 603  
      *                                   is missing or null
 604  
      * @throws OperationFailedException  unable to complete request
 605  
      * @throws PermissionDeniedException an authorization failure occurred
 606  
      */
 607  
 
 608  
     public List<String> getScheduleRequestsByRefObject(@WebParam(name = "refObjectType") String refObjectType, @WebParam(name = "refObjectId") String refObjectId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 609  
 
 610  
     /**
 611  
      * Retrieves a list of ScheduleRequests associated with a ScheduleBatch
 612  
      *
 613  
      * @param scheduleBatchId an identifier for a ScheduleBatch
 614  
      * @param contextInfo     Context information containing the principalId and
 615  
      *                        locale information about the caller of service
 616  
      *                        operation
 617  
      * @return a list of ScheduleRequest identifiers matching
 618  
      *         scheduleRequestTypeKey or an empty list if none found
 619  
      * @throws InvalidParameterException invalid contextInfo
 620  
      * @throws MissingParameterException scheduleRequestTypeKey or contextInfo
 621  
      *                                   is missing or null
 622  
      * @throws OperationFailedException  unable to complete request
 623  
      * @throws PermissionDeniedException an authorization failure occurred
 624  
      */
 625  
     public List<ScheduleRequestInfo> getScheduleRequestsForScheduleBatch(@WebParam(name = "scheduleBatchId") String scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 626  
 
 627  
 
 628  
     /**
 629  
      * Searches for ScheduleRequests based on the criteria and returns a list of
 630  
      * ScheduleRequest identifiers which match the search criteria.
 631  
      *
 632  
      * @param criteria    the search criteria
 633  
      * @param contextInfo Context information containing the principalId and
 634  
      *                    locale information about the caller of service
 635  
      *                    operation
 636  
      * @return list of ScheduleRequest Ids
 637  
      * @throws InvalidParameterException invalid criteria or contextInfo
 638  
      * @throws MissingParameterException missing criteria or contextInfo
 639  
      * @throws OperationFailedException  unable to complete request
 640  
      * @throws PermissionDeniedException authorization failure
 641  
      */
 642  
     public List<String> searchForScheduleRequestIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 643  
 
 644  
     /**
 645  
      * Searches for ScheduleRequests based on the criteria and returns a list of
 646  
      * ScheduleRequests which match the search criteria.
 647  
      *
 648  
      * @param criteria    the search criteria
 649  
      * @param contextInfo Context information containing the principalId and
 650  
      *                    locale information about the caller of service
 651  
      *                    operation
 652  
      * @return list of ScheduleRequests
 653  
      * @throws InvalidParameterException invalid criteria or contextInfo
 654  
      * @throws MissingParameterException missing criteria or contextInfo
 655  
      * @throws OperationFailedException  unable to complete request
 656  
      * @throws PermissionDeniedException authorization failure
 657  
      */
 658  
     public List<ScheduleRequestInfo> searchForScheduleRequests(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 659  
 
 660  
     /**
 661  
      * Validates a ScheduleRequest. Depending on the value of validationType,
 662  
      * this validation could be limited to tests on just the current
 663  
      * ScheduleRequest and its directly contained sub-objects or expanded to
 664  
      * perform all tests related to this ScheduleRequest. If an identifier is
 665  
      * present for the ScheduleRequest (and/or one of its contained sub-objects)
 666  
      * and a record is found for that identifier, the validation checks if the
 667  
      * ScheduleRequest can be updated to the new values. If an identifier is not
 668  
      * present or a record does not exist, the validation checks if the object
 669  
      * with the given data can be created.
 670  
      *
 671  
      * @param validationTypeKey      the identifier for the validation Type
 672  
      * @param scheduleRequestTypeKey the identifier for the scheduleRequest
 673  
      *                               Type
 674  
      * @param scheduleRequestInfo    detailed information about the
 675  
      *                               scheduleRequest
 676  
      * @param contextInfo            Context information containing the
 677  
      *                               principalId and locale information about
 678  
      *                               the caller of service operation
 679  
      * @return a list of validation results or an empty list if validation
 680  
      *         succeeded
 681  
      * @throws DoesNotExistException     validationTypeKey, scheduleRequestId,
 682  
      *                                   not found
 683  
      * @throws InvalidParameterException invalid scheduleRequestInfo or
 684  
      *                                   contextInfo
 685  
      * @throws MissingParameterException validationTypeKey, scheduleRequestId or
 686  
      *                                   contextInfo is missing or null
 687  
      * @throws OperationFailedException  unable to complete request
 688  
      * @throws PermissionDeniedException an authorization failure occurred
 689  
      */
 690  
     public List<ValidationResultInfo> validateScheduleRequest(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "scheduleRequestTypeKey") String scheduleRequestTypeKey, @WebParam(name = "scheduleRequestInfo") ScheduleRequestInfo scheduleRequestInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 691  
 
 692  
     /**
 693  
      * Creates a ScheduleRequest
 694  
      *
 695  
      * @param scheduleRequestTypeKey the identifier for the scheduleRequest
 696  
      *                               Type
 697  
      * @param scheduleRequestInfo    detailed information about the
 698  
      *                               scheduleRequest
 699  
      * @param contextInfo            Context information containing the
 700  
      *                               principalId and locale information about
 701  
      *                               the caller of service operation
 702  
      * @return detailed information about the scheduleRequest
 703  
      * @throws DataValidationErrorException supplied data is invalid
 704  
      * @throws DoesNotExistException        scheduleRequestId does not exist
 705  
      * @throws InvalidParameterException    invalid scheduleRequestInfo or
 706  
      *                                      contextInfo
 707  
      * @throws MissingParameterException    scheduleRequestId or contextInfo is
 708  
      *                                      missing or null
 709  
      * @throws OperationFailedException     unable to complete request
 710  
      * @throws PermissionDeniedException    an authorization failure occurred
 711  
      * @throws ReadOnlyException            an attempt at supplying information
 712  
      *                                      designated as read only
 713  
      */
 714  
     public ScheduleRequestInfo createScheduleRequest(@WebParam(name = "scheduleRequestTypeKey") String scheduleRequestTypeKey, @WebParam(name = "scheduleRequestInfo") ScheduleRequestInfo scheduleRequestInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 715  
 
 716  
     /**
 717  
      * Updates a scheduleRequest.
 718  
      *
 719  
      * @param scheduleRequestId   identifier of the scheduleRequest to be
 720  
      *                            updated
 721  
      * @param scheduleRequestInfo information about the object scheduleRequestInfo
 722  
      *                            to be updated
 723  
      * @param contextInfo         context information containing the principalId
 724  
      *                            and locale information about the caller of
 725  
      *                            service operation
 726  
      * @return updated scheduleRequest information
 727  
      * @throws DataValidationErrorException one or more values invalid for this
 728  
      *                                      operation
 729  
      * @throws DoesNotExistException        scheduleRequestId not found
 730  
      * @throws InvalidParameterException    invalid scheduleRequestInfo or
 731  
      *                                      contextInfo
 732  
      * @throws MissingParameterException    scheduleRequestId, scheduleRequestInfo
 733  
      *                                      or contextInfo is missing or null
 734  
      * @throws OperationFailedException     unable to complete request
 735  
      * @throws PermissionDeniedException    an authorization failure occurred
 736  
      * @throws ReadOnlyException            an attempt at supplying information
 737  
      *                                      designated as read-only
 738  
      * @throws VersionMismatchException     optimistic locking failure or the
 739  
      *                                      action was attempted on an out of
 740  
      *                                      date version
 741  
      */
 742  
     public ScheduleRequestInfo updateScheduleRequest(@WebParam(name = "scheduleRequestId") String scheduleRequestId, @WebParam(name = "scheduleRequestInfo") ScheduleRequestInfo scheduleRequestInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 743  
 
 744  
     /**
 745  
      * Removes scheduleRequest relationship between a person and a slot.
 746  
      *
 747  
      * @param scheduleRequestId ScheduleRequest  identifier
 748  
      * @param contextInfo       context information containing the principalId
 749  
      *                          and locale information about the caller of
 750  
      *                          service operation
 751  
      * @return status of the operation (success, failed)
 752  
      * @throws DoesNotExistException     scheduleRequestId not found
 753  
      * @throws InvalidParameterException invalid contextInfo
 754  
      * @throws MissingParameterException scheduleRequestId or contextInfo is
 755  
      *                                   missing or null
 756  
      * @throws OperationFailedException  unable to complete request
 757  
      * @throws PermissionDeniedException an authorization failure occurred
 758  
      */
 759  
     public StatusInfo deleteScheduleRequest(@WebParam(name = "scheduleRequestId") String scheduleRequestId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 760  
 
 761  
 
 762  
     /**
 763  
      * Retrieves a TimeSlot
 764  
      *
 765  
      * @param timeSlotId  a unique Id of a TimeSlot
 766  
      * @param contextInfo Context information containing the principalId and
 767  
      *                    locale information about the caller of service
 768  
      *                    operation
 769  
      * @return the TimeSlot
 770  
      * @throws DoesNotExistException     timeSlotId not found
 771  
      * @throws InvalidParameterException invalid contextInfo
 772  
      * @throws MissingParameterException timeSlotId or contextInfo is missing or
 773  
      *                                   null
 774  
      * @throws OperationFailedException  unable to complete request
 775  
      * @throws PermissionDeniedException an authorization failure occurred
 776  
      */
 777  
     public TimeSlotInfo getTimeSlot(@WebParam(name = "timeSlotId") String timeSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 778  
 
 779  
     /**
 780  
      * Retrieves a list of TimeSlots corresponding to the given list of TimeSlot
 781  
      * Ids.
 782  
      *
 783  
      * @param timeSlotIds list of TimeSlots to be retrieved
 784  
      * @param contextInfo Context information containing the principalId and
 785  
      *                    locale information about the caller of service
 786  
      *                    operation
 787  
      * @return a list of TimeSlots
 788  
      * @throws DoesNotExistException     a timeSlotId in list not found
 789  
      * @throws InvalidParameterException invalid contextInfo
 790  
      * @throws MissingParameterException missing timeSlotId or contextInfo is
 791  
      *                                   missing or null
 792  
      * @throws OperationFailedException  unable to complete request
 793  
      * @throws PermissionDeniedException an authorization failure occurred
 794  
      */
 795  
     public List<TimeSlotInfo> getTimeSlotsByIds(@WebParam(name = "timeSlotIds") List<String> timeSlotIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 796  
 
 797  
     /**
 798  
      * Retrieves a list of TimeSlot Ids by TimeSlot Type.
 799  
      *
 800  
      * @param timeSlotTypeKey an identifier for an TimeSlot Type
 801  
      * @param contextInfo     Context information containing the principalId and
 802  
      *                        locale information about the caller of service
 803  
      *                        operation
 804  
      * @return a list of TimeSlot identifiers matching timeSlotTypeKey or an
 805  
      *         empty list if none found
 806  
      * @throws InvalidParameterException invalid contextInfo
 807  
      * @throws MissingParameterException timeSlotTypeKey or contextInfo is
 808  
      *                                   missing or null
 809  
      * @throws OperationFailedException  unable to complete request
 810  
      * @throws PermissionDeniedException an authorization failure occurred
 811  
      */
 812  
     public List<String> getTimeSlotIdsByType(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 813  
 
 814  
     /**
 815  
      * Retrieves a list of TimeSlots by TimeSlot Type, days of week and start
 816  
      * time. Parameter daysOfWeek follows the Java standard: Sunday=1 to
 817  
      * Saturday=7
 818  
      *
 819  
      * @param timeSlotTypeKey identifier for the given slot type
 820  
      * @param daysOfWeek      days of the week of interest
 821  
      * @param startTime       start time of interest
 822  
      * @param contextInfo     Context information containing the principalId and
 823  
      *                        locale information about the caller of service
 824  
      *                        operation
 825  
      * @return a list of TimeSlots matching timeSlotTypeKey, daysOfWeek and
 826  
      *         startTime; empty list if none found
 827  
      * @throws InvalidParameterException invalid daysOfWeek, startTime or
 828  
      *                                   contextInfo
 829  
      * @throws MissingParameterException timeSlotTypeKey, daysOfWeek, startTime
 830  
      *                                   or contextInfo is missing or null
 831  
      * @throws OperationFailedException  unable to complete request
 832  
      * @throws PermissionDeniedException an authorization failure occurred
 833  
      */
 834  
     public List<TimeSlotInfo> getTimeSlotsByDaysAndStartTime(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "daysOfWeek") List<Integer> daysOfWeek, @WebParam(name = "startTime") TimeOfDayInfo startTime, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 835  
 
 836  
     /**
 837  
      * Retrieves a list of TimeSlots by TimeSlot Type, days of week, start time
 838  
      * and duration. Parameter daysOfWeek follows the Java standard: Sunday=1 to
 839  
      * Saturday=7
 840  
      *
 841  
      * @param timeSlotTypeKey identifier for the given slot type
 842  
      * @param daysOfWeek      days of the week of interest
 843  
      * @param startTime       start time of interest
 844  
      * @param duration        duration of interest
 845  
      * @param contextInfo     Context information containing the principalId and
 846  
      *                        locale information about the caller of service
 847  
      *                        operation
 848  
      * @return a list of TimeSlots matching timeSlotTypeKey, daysOfWeek,
 849  
      *         startTime and duration; empty list if none found
 850  
      * @throws InvalidParameterException invalid daysOfWeek, startTime, duration
 851  
      *                                   or contextInfo
 852  
      * @throws MissingParameterException timeSlotTypeKey, daysOfWeek, startTime,
 853  
      *                                   duration or contextInfo is missing or
 854  
      *                                   null
 855  
      * @throws OperationFailedException  unable to complete request
 856  
      * @throws PermissionDeniedException an authorization failure occurred
 857  
      */
 858  
     public List<TimeSlotInfo> getTimeSlotsByDaysAndStartTimeAndDuration(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "daysOfWeek") List<Integer> daysOfWeek, @WebParam(name = "startTime") TimeOfDayInfo startTime, @WebParam(name = "duration") TimeAmountInfo duration, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 859  
 
 860  
     /**
 861  
      * Searches for TimeSlots based on the criteria and returns a list of
 862  
      * TimeSlot identifiers which match the search criteria.
 863  
      *
 864  
      * @param criteria    the search criteria
 865  
      * @param contextInfo Context information containing the principalId and
 866  
      *                    locale information about the caller of service
 867  
      *                    operation
 868  
      * @return list of TimeSlot Ids
 869  
      * @throws InvalidParameterException invalid criteria or contextInfo
 870  
      * @throws MissingParameterException missing criteria or contextInfo
 871  
      * @throws OperationFailedException  unable to complete request
 872  
      * @throws PermissionDeniedException authorization failure
 873  
      */
 874  
     public List<String> searchForTimeSlotIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 875  
 
 876  
     /**
 877  
      * Searches for TimeSlots based on the criteria and returns a list of
 878  
      * TimeSlots which match the search criteria.
 879  
      *
 880  
      * @param criteria    the search criteria
 881  
      * @param contextInfo Context information containing the principalId and
 882  
      *                    locale information about the caller of service
 883  
      *                    operation
 884  
      * @return list of TimeSlots
 885  
      * @throws InvalidParameterException invalid criteria or contextInfo
 886  
      * @throws MissingParameterException missing criteria or contextInfo
 887  
      * @throws OperationFailedException  unable to complete request
 888  
      * @throws PermissionDeniedException authorization failure
 889  
      */
 890  
     public List<TimeSlotInfo> searchForTimeSlots(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 891  
 
 892  
     /**
 893  
      * Validates an TimeSlot. Depending on the value of validationType, this
 894  
      * validation could be limited to tests on just the current TimeSlot and its
 895  
      * directly contained sub-objects or expanded to perform all tests related
 896  
      * to this TimeSlot. If an identifier is present for the TimeSlot (and/or
 897  
      * one of its contained sub-objects) and a record is found for that
 898  
      * identifier, the validation checks if the TimeSlot can be updated to the
 899  
      * new values. If an identifier is not present or a record does not exist,
 900  
      * the validation checks if the object with the given data can be created.
 901  
      *
 902  
      * @param validationTypeKey the identifier for the validation Type
 903  
      * @param timeSlotTypeKey   the identifier for the timeSlot Type
 904  
      * @param timeSlotInfo      detailed information about the timeSlot
 905  
      * @param contextInfo       Context information containing the principalId
 906  
      *                          and locale information about the caller of
 907  
      *                          service operation
 908  
      * @return a list of validation results or an empty list if validation
 909  
      *         succeeded
 910  
      * @throws DoesNotExistException     validationTypeKey, timeSlotId, not
 911  
      *                                   found
 912  
      * @throws InvalidParameterException invalid timeSlotInfo or contextInfo
 913  
      * @throws MissingParameterException validationTypeKey, timeSlotId or
 914  
      *                                   contextInfo is missing or null
 915  
      * @throws OperationFailedException  unable to complete request
 916  
      * @throws PermissionDeniedException an authorization failure occurred
 917  
      */
 918  
     public List<ValidationResultInfo> validateTimeSlot(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "timeSlotInfo") TimeSlotInfo timeSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 919  
 
 920  
     /**
 921  
      * Creates a TimeSlot
 922  
      *
 923  
      * @param timeSlotTypeKey the identifier for the timeSlot Type
 924  
      * @param timeSlotInfo    detailed information about the timeSlot
 925  
      * @param contextInfo     Context information containing the principalId and
 926  
      *                        locale information about the caller of service
 927  
      *                        operation
 928  
      * @return detailed information about the timeSlot
 929  
      * @throws DataValidationErrorException supplied data is invalid
 930  
      * @throws DoesNotExistException        timeSlotId does not exist
 931  
      * @throws InvalidParameterException    invalid timeSlotInfo or contextInfo
 932  
      * @throws MissingParameterException    timeSlotId or contextInfo is missing
 933  
      *                                      or null
 934  
      * @throws OperationFailedException     unable to complete request
 935  
      * @throws PermissionDeniedException    an authorization failure occurred
 936  
      * @throws ReadOnlyException            an attempt at supplying information
 937  
      *                                      designated as read only
 938  
      */
 939  
     public TimeSlotInfo createTimeSlot(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "timeSlotInfo") TimeSlotInfo timeSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 940  
 
 941  
     /**
 942  
      * Updates a timeSlot.
 943  
      *
 944  
      * @param timeSlotId   identifier of the timeSlot  to be updated
 945  
      * @param timeSlotInfo information about the object timeSlotInfo to be
 946  
      *                     updated
 947  
      * @param contextInfo  context information containing the principalId and
 948  
      *                     locale information about the caller of service
 949  
      *                     operation
 950  
      * @return updated timeSlot information
 951  
      * @throws DataValidationErrorException one or more values invalid for this
 952  
      *                                      operation
 953  
      * @throws DoesNotExistException        timeSlotId not found
 954  
      * @throws InvalidParameterException    invalid timeSlotInfo or contextInfo
 955  
      * @throws MissingParameterException    timeSlotId, timeSlotInfo or
 956  
      *                                      contextInfo is missing or null
 957  
      * @throws OperationFailedException     unable to complete request
 958  
      * @throws PermissionDeniedException    an authorization failure occurred
 959  
      * @throws ReadOnlyException            an attempt at supplying information
 960  
      *                                      designated as read-only
 961  
      * @throws VersionMismatchException     optimistic locking failure or the
 962  
      *                                      action was attempted on an out of
 963  
      *                                      date version
 964  
      */
 965  
     public TimeSlotInfo updateTimeSlot(@WebParam(name = "timeSlotId") String timeSlotId, @WebParam(name = "timeSlotInfo") TimeSlotInfo timeSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 966  
 
 967  
     /**
 968  
      * Removes scheduleResponse relationship between a person and a slot.
 969  
      *
 970  
      * @param timeSlotId  TimeSlot  identifier
 971  
      * @param contextInfo context information containing the principalId and
 972  
      *                    locale information about the caller of service
 973  
      *                    operation
 974  
      * @return status of the operation (success, failed)
 975  
      * @throws DoesNotExistException     timeSlotId not found
 976  
      * @throws InvalidParameterException invalid contextInfo
 977  
      * @throws MissingParameterException timeSlotId or contextInfo is missing or
 978  
      *                                   null
 979  
      * @throws OperationFailedException  unable to complete request
 980  
      * @throws PermissionDeniedException an authorization failure occurred
 981  
      */
 982  
     public StatusInfo deleteTimeSlot(@WebParam(name = "timeSlotId") String timeSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 983  
 
 984  
     /**
 985  
      * Retrieves a ScheduleResponse
 986  
      *
 987  
      * @param scheduleResponseId a unique Id of a ScheduleResponse
 988  
      * @param contextInfo        Context information containing the principalId
 989  
      *                           and locale information about the caller of
 990  
      *                           service operation
 991  
      * @return the ScheduleResponse
 992  
      * @throws DoesNotExistException     scheduleResponseId not found
 993  
      * @throws InvalidParameterException invalid contextInfo
 994  
      * @throws MissingParameterException scheduleResponseId or contextInfo is
 995  
      *                                   missing or null
 996  
      * @throws OperationFailedException  unable to complete request
 997  
      * @throws PermissionDeniedException an authorization failure occurred
 998  
      */
 999  
     public ScheduleResponseInfo getScheduleResponse(@WebParam(name = "scheduleResponseId") String scheduleResponseId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1000  
 
 1001  
     /**
 1002  
      * Retrieves a list of ScheduleResponses corresponding to the given list of
 1003  
      * ScheduleResponse Ids Ids.
 1004  
      *
 1005  
      * @param scheduleResponseIds list of ScheduleResponses to be retrieved
 1006  
      * @param contextInfo         Context information containing the principalId
 1007  
      *                            and locale information about the caller of
 1008  
      *                            service operation
 1009  
      * @return a list of ScheduleResponses
 1010  
      * @throws DoesNotExistException     a scheduleResponseId in list not found
 1011  
      * @throws InvalidParameterException invalid contextInfo
 1012  
      * @throws MissingParameterException missing scheduleResponseId or
 1013  
      *                                   contextInfo is missing or null
 1014  
      * @throws OperationFailedException  unable to complete request
 1015  
      * @throws PermissionDeniedException an authorization failure occurred
 1016  
      */
 1017  
     public List<ScheduleResponseInfo> getScheduleResponsesByIds(@WebParam(name = "scheduleResponseIds") List<String> scheduleResponseIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1018  
 
 1019  
     /**
 1020  
      * Retrieves a list of ScheduleResponse Ids by ScheduleResponse Type.
 1021  
      *
 1022  
      * @param scheduleResponseTypeKey an identifier for a ScheduleResponse Type
 1023  
      * @param contextInfo             Context information containing the
 1024  
      *                                principalId and locale information about
 1025  
      *                                the caller of service operation
 1026  
      * @return a list of ScheduleResponse identifiers matching
 1027  
      *         scheduleResponseTypeKey or an empty list if none found
 1028  
      * @throws InvalidParameterException invalid contextInfo
 1029  
      * @throws MissingParameterException scheduleResponseTypeKey or contextInfo
 1030  
      *                                   is missing or null
 1031  
      * @throws OperationFailedException  unable to complete request
 1032  
      * @throws PermissionDeniedException an authorization failure occurred
 1033  
      */
 1034  
     public List<String> getScheduleResponseIdsByType(@WebParam(name = "scheduleResponseTypeKey") String scheduleResponseTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1035  
 
 1036  
     /**
 1037  
      * Retrieves a list of ScheduleResponses corresponding to the given list of
 1038  
      * Schedule Ids.
 1039  
      *
 1040  
      * @param scheduleRequestIds list of ScheduleResponses to be retrieved
 1041  
      * @param contextInfo        Context information containing the principalId
 1042  
      *                           and locale information about the caller of
 1043  
      *                           service operation
 1044  
      * @return a list of ScheduleResponses
 1045  
      * @throws DoesNotExistException     a scheduleRequestId in list not found
 1046  
      * @throws InvalidParameterException invalid contextInfo
 1047  
      * @throws MissingParameterException scheduleRequestIds or contextInfo is
 1048  
      *                                   missing or null
 1049  
      * @throws OperationFailedException  unable to complete request
 1050  
      * @throws PermissionDeniedException an authorization failure occurred
 1051  
      */
 1052  
     public List<ScheduleResponseInfo> getScheduleResponsesByScheduleRequestIds(@WebParam(name = "scheduleRequestIds") List<String> scheduleRequestIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1053  
 
 1054  
     /**
 1055  
      * Retrieves a list of ScheduleResponses corresponding to the given list of
 1056  
      * ScheduleResponse Ids.
 1057  
      *
 1058  
      * @param scheduleBatchResponseId ScheduleBatchResponse identifier
 1059  
      * @param contextInfo             Context information containing the
 1060  
      *                                principalId and locale information about
 1061  
      *                                the caller of service operation
 1062  
      * @return a list of ScheduleResponses associated with a
 1063  
      *         ScheduleBatchResponse identifier
 1064  
      * @throws DoesNotExistException     scheduleBatchResponseId not found
 1065  
      * @throws InvalidParameterException invalid contextInfo
 1066  
      * @throws MissingParameterException scheduleBatchResponseId or contextInfo
 1067  
      *                                   is missing or null
 1068  
      * @throws OperationFailedException  unable to complete request
 1069  
      * @throws PermissionDeniedException an authorization failure occurred
 1070  
      */
 1071  
     public List<ScheduleResponseInfo> getScheduleResponsesByScheduleBatchResponse(@WebParam(name = "scheduleBatchResponseId") String scheduleBatchResponseId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1072  
 
 1073  
     /**
 1074  
      * Calls R25 in our implementation ... the scheduled results may not be
 1075  
      * available when this method returns. The method for scheduling
 1076  
      * ActivityOfferings may be in the CourseOffering service.
 1077  
      *
 1078  
      * @param scheduleBatchId ScheduleRequest  identifier
 1079  
      * @param contextInfo     context information containing the principalId and
 1080  
      *                        locale information about the caller of service
 1081  
      *                        operation
 1082  
      * @return ScheduleResponse after submitting the Batch
 1083  
      * @throws DoesNotExistException     scheduleRequestId not found
 1084  
      * @throws InvalidParameterException invalid contextInfo
 1085  
      * @throws MissingParameterException scheduleRequestId or contextInfo is
 1086  
      *                                   missing or null
 1087  
      * @throws OperationFailedException  unable to complete request
 1088  
      * @throws PermissionDeniedException an authorization failure occurred
 1089  
      */
 1090  
     public ScheduleResponseInfo submitScheduleBatch(@WebParam(name = "scheduleBatchId") String scheduleBatchId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1091  
 
 1092  
     /**
 1093  
      * Saves the scheduleIds to the referenced objects
 1094  
      *
 1095  
      * @param scheduleBatchResponseId ScheduleBatchResponse identifier
 1096  
      * @param contextInfo             context information containing the
 1097  
      *                                principalId and locale information about
 1098  
      *                                the caller of service operation
 1099  
      * @return status of the operation (success, failed)
 1100  
      * @throws DoesNotExistException     scheduleBatchResponseId not found
 1101  
      * @throws InvalidParameterException invalid contextInfo
 1102  
      * @throws MissingParameterException scheduleBatchResponseId or contextInfo
 1103  
      *                                   is missing or null
 1104  
      * @throws OperationFailedException  unable to complete request
 1105  
      * @throws PermissionDeniedException an authorization failure occurred
 1106  
      */
 1107  
     public StatusInfo commitSchedules(@WebParam(name = "scheduleBatchResponseId") String scheduleBatchResponseId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1108  
 
 1109  
     /**
 1110  
      * Retrieves valid days of the week for the given slot type. Parameter
 1111  
      * daysOfWeek follows the Java standard: Sunday=1 to Saturday=7
 1112  
      *
 1113  
      * @param timeSlotTypeKey identifier for the given slot type
 1114  
      * @param contextInfo     Context information containing the principalId and
 1115  
      *                        locale information about the caller of service
 1116  
      *                        operation
 1117  
      * @return Days of the week for the slot type; empty list if none found
 1118  
      * @throws InvalidParameterException invalid contextInfo
 1119  
      * @throws MissingParameterException timeSlotTypeKey or contextInfo is
 1120  
      *                                   missing or null
 1121  
      * @throws OperationFailedException  unable to complete request
 1122  
      * @throws PermissionDeniedException an authorization failure occurred
 1123  
      */
 1124  
     public List<Integer> getValidDaysOfWeekByTimeSlotType(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1125  
 
 1126  
     /**
 1127  
      * Retrieves valid duration for the given slot type, days of week and start
 1128  
      * time. Parameter daysOfWeek follows the Java standard: Sunday=1 to
 1129  
      * Saturday=7
 1130  
      *
 1131  
      * @param timeSlotTypeKey identifier for the given slot type
 1132  
      * @param daysOfWeek      days of week of interest
 1133  
      * @param startTime       start time of interest
 1134  
      * @param contextInfo     Context information containing the principalId and
 1135  
      *                        locale information about the caller of service
 1136  
      *                        operation
 1137  
      * @return valid duration for the given slot type, days of week and start
 1138  
      *         times; empty list if none found
 1139  
      * @throws InvalidParameterException invalid daysOfWeek, startTime or
 1140  
      *                                   contextInfo
 1141  
      * @throws MissingParameterException timeSlotTypeKey, daysOfWeek, startTime
 1142  
      *                                   or contextInfo is missing or null
 1143  
      * @throws OperationFailedException  unable to complete request
 1144  
      * @throws PermissionDeniedException an authorization failure occurred
 1145  
      */
 1146  
     public List<TimeAmountInfo> getValidDurationsByTypeAndDaysOfWeekAndStartTime(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "daysOfWeek") List<Integer> daysOfWeek, @WebParam(name = "startTime") TimeOfDayInfo startTime, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1147  
 
 1148  
     /**
 1149  
      * Retrieves valid start times for the given slot type, days of week and
 1150  
      * durations of interest. Parameter daysOfWeek follows the Java standard:
 1151  
      * Sunday=1 to Saturday=7 While the parameter durations lists any of the
 1152  
      * values of interest, parameter daysOfWeek is just one value (for the days
 1153  
      * pattern).
 1154  
      *
 1155  
      * @param timeSlotTypeKey identifier for the given slot type
 1156  
      * @param daysOfWeek      days of the week of interest. Note: This is just
 1157  
      *                        one value, which happens to be a pattern.
 1158  
      * @param durations       durations of interest. Any of the given duration
 1159  
      *                        values is valid.
 1160  
      * @param contextInfo     Context information containing the principalId and
 1161  
      *                        locale information about the caller of service
 1162  
      *                        operation
 1163  
      * @return valid start times for the given slot type and days of week; empty
 1164  
      *         list if none found
 1165  
      * @throws InvalidParameterException invalid daysOfWeek, durations or
 1166  
      *                                   contextInfo
 1167  
      * @throws MissingParameterException timeSlotTypeKey, daysOfWeek, durations
 1168  
      *                                   or contextInfo is missing or null
 1169  
      * @throws OperationFailedException  unable to complete request
 1170  
      * @throws PermissionDeniedException an authorization failure occurred
 1171  
      */
 1172  
     public List<TimeOfDayInfo> getValidStartTimesByTypeAndDaysOfWeekAndDurations(@WebParam(name = "timeSlotTypeKey") String timeSlotTypeKey, @WebParam(name = "daysOfWeek") List<Integer> daysOfWeek, @WebParam(name = "durations") List<TimeAmountInfo> durations, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1173  
 
 1174  
 }
 1175