Coverage Report - org.kuali.student.r2.core.appointment.service.AppointmentService
 
Classes in this File Line Coverage Branch Coverage Complexity
AppointmentService
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.appointment.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.ValidationResultInfo;
 22  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 23  
 import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
 24  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 25  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 26  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 27  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 28  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 29  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 30  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 31  
 import org.kuali.student.r2.core.appointment.constants.AppointmentServiceConstants;
 32  
 import org.kuali.student.r2.core.appointment.dto.AppointmentInfo;
 33  
 import org.kuali.student.r2.core.appointment.dto.AppointmentSlotInfo;
 34  
 import org.kuali.student.r2.core.appointment.dto.AppointmentWindowInfo;
 35  
 
 36  
 import javax.jws.WebParam;
 37  
 import javax.jws.WebService;
 38  
 import javax.jws.soap.SOAPBinding;
 39  
 import java.util.List;
 40  
 
 41  
 /**
 42  
  * The appointment service is responsible for creating appointments and then 
 43  
  * assigning students to them. The primary focus is to create appointments so 
 44  
  * that students can register for courses in the upcoming term. 
 45  
  * The process proceeds in three stages. First the user defines windows in the 
 46  
  * context of a milestone (like registration period) and assigns populations of 
 47  
  * students to those windows, then the user specifies rules for generating 
 48  
  * individual slots, finally students from that population get attached to those 
 49  
  * slots. 
 50  
  * 
 51  
  * @Version 1.0
 52  
  * @Author Sri komandur@uw.edu
 53  
  */
 54  
 @WebService(name = "AppointmentService", serviceName = "AppointmentService", portName = "AppointmentService", targetNamespace = AppointmentServiceConstants.NAMESPACE)
 55  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 56  
 public interface AppointmentService {
 57  
 
 58  
     /**
 59  
      * Retrieves an Appointment
 60  
      *
 61  
      * @param appointmentId a unique Id of an Appointment
 62  
      * @param contextInfo   Context information containing the principalId and
 63  
      *                      locale information about the caller of service
 64  
      *                      operation
 65  
      * @return an Appointment
 66  
      * @throws DoesNotExistException     appointmentId not found
 67  
      * @throws InvalidParameterException invalid contextInfo
 68  
      * @throws MissingParameterException appointmentId or contextInfo is missing
 69  
      *                                   or null
 70  
      * @throws OperationFailedException  unable to complete request
 71  
      * @throws PermissionDeniedException an authorization failure occurred
 72  
      */
 73  
     public AppointmentInfo getAppointment(@WebParam(name = "appointmentId") String appointmentId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 74  
 
 75  
     /**
 76  
      * Retrieves a list of Appointments corresponding to the given list of
 77  
      * Appointment Ids.
 78  
      *
 79  
      * @param appointmentIds list of Appointments to be retrieved
 80  
      * @param contextInfo    Context information containing the principalId and
 81  
      *                       locale information about the caller of service
 82  
      *                       operation
 83  
      * @return a list of Appointments
 84  
      * @throws DoesNotExistException     a appointmentId in list not found
 85  
      * @throws InvalidParameterException invalid contextInfo
 86  
      * @throws MissingParameterException appointmentId or contextInfo is
 87  
      *                                   missing or null
 88  
      * @throws OperationFailedException  unable to complete request
 89  
      * @throws PermissionDeniedException an authorization failure occurred
 90  
      */
 91  
     public List<AppointmentInfo> getAppointmentsByIds(@WebParam(name = "appointmentIds") List<String> appointmentIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 92  
 
 93  
     /**
 94  
      * Retrieves a list of Appointment Ids by Appointment Type.
 95  
      *
 96  
      * @param appointmentTypeKey an identifier for an Appointment Type
 97  
      * @param contextInfo        Context information containing the principalId
 98  
      *                           and locale information about the caller of
 99  
      *                           service operation
 100  
      * @return a list of Appointment identifiers matching appointmentTypeKey or
 101  
      *         an empty list if none found
 102  
      * @throws InvalidParameterException invalid contextInfo
 103  
      * @throws MissingParameterException appointmentTypeKey or contextInfo is
 104  
      *                                   missing or null
 105  
      * @throws OperationFailedException  unable to complete request
 106  
      * @throws PermissionDeniedException an authorization failure occurred
 107  
      */
 108  
     public List<String> getAppointmentIdsByType(@WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 109  
 
 110  
     /**
 111  
      * Retrieves all Appointments to the given AppointmentSlot
 112  
      *
 113  
      * @param appointmentSlotId the identifier for the AppointmentSlot
 114  
      * @param contextInfo       Context information containing the principalId
 115  
      *                          and locale information about the caller of
 116  
      *                          service operation
 117  
      * @return a list of Appointments to the given AppointmentSlot or an empty
 118  
      *         list if none found
 119  
      * @throws InvalidParameterException contextInfo is not valid
 120  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 121  
      *                                   missing or null
 122  
      * @throws OperationFailedException  unable to complete request
 123  
      * @throws PermissionDeniedException an authorization failure occurred
 124  
      */
 125  
     public List<AppointmentInfo> getAppointmentsBySlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 126  
 
 127  
     /**
 128  
      * Retrieves all Appointments to the given Person
 129  
      *
 130  
      * @param personId    the identifier for the Person
 131  
      * @param contextInfo Context information containing the principalId and
 132  
      *                    locale information about the caller of service
 133  
      *                    operation
 134  
      * @return a list of Appointments to the given Person or an empty list if
 135  
      *         none found
 136  
      * @throws InvalidParameterException invalid contextInfo
 137  
      * @throws MissingParameterException personId or contextInfo is missing or
 138  
      *                                   null
 139  
      * @throws OperationFailedException  unable to complete request
 140  
      * @throws PermissionDeniedException an authorization failure occurred
 141  
      */
 142  
     public List<String> getAppointmentIdsByPerson(@WebParam(name = "personId") String personId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 143  
 
 144  
     /**
 145  
      * Retrieves all Appointments to the given Person and Slot
 146  
      *
 147  
      * @param personId          the identifier for the Person
 148  
      * @param appointmentSlotId the identifier for the AppointmentSlot
 149  
      * @param contextInfo       Context information containing the principalId
 150  
      *                          and locale information about the caller of
 151  
      *                          service operation
 152  
      * @return a list of Appointments to the given Person and Slot or an empty
 153  
      *         list if none found
 154  
      * @throws InvalidParameterException invalid contextInfo
 155  
      * @throws MissingParameterException personId, appointmentSlotId or contextInfo is missing or
 156  
      *                                   null
 157  
      * @throws OperationFailedException  unable to complete request
 158  
      * @throws PermissionDeniedException an authorization failure occurred
 159  
      */
 160  
     public List<AppointmentInfo> getAppointmentsByPersonAndSlot(@WebParam(name = "personId") String personId, @WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 161  
 
 162  
     /**
 163  
      * Searches for Appointments based on the criteria and returns a list of
 164  
      * Appointment identifiers which match the search criteria.
 165  
      *
 166  
      * @param criteria    the search criteria
 167  
      * @param contextInfo Context information containing the principalId and
 168  
      *                    locale information about the caller of service
 169  
      *                    operation
 170  
      * @return list of Appointment Ids
 171  
      * @throws InvalidParameterException invalid contextInfo
 172  
      * @throws MissingParameterException criteria, contextInfo is missing or
 173  
      *                                   null
 174  
      * @throws OperationFailedException  unable to complete request
 175  
      * @throws PermissionDeniedException an authorization failure occurred
 176  
      */
 177  
     public List<String> searchForAppointmentIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 178  
 
 179  
     /**
 180  
      * Searches for Appointments based on the criteria and returns a list of
 181  
      * Appointments which match the search criteria.
 182  
      *
 183  
      * @param criteria    the search criteria
 184  
      * @param contextInfo Context information containing the principalId and
 185  
      *                    locale information about the caller of service
 186  
      *                    operation
 187  
      * @return list of Appointment information
 188  
      * @throws InvalidParameterException invalid contextInfo
 189  
      * @throws MissingParameterException criteria, contextInfo is missing or
 190  
      *                                   null
 191  
      * @throws OperationFailedException  unable to complete request
 192  
      * @throws PermissionDeniedException an authorization failure occurred
 193  
      */
 194  
     public List<AppointmentInfo> searchForAppointments(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 195  
 
 196  
     /**
 197  
      * Validates an Appointment. Depending on the value of validationType, this
 198  
      * validation could be limited to tests on just the current Appointment and
 199  
      * its directly contained sub-objects or expanded to perform all tests
 200  
      * related to this Appointment. If an identifier is present for the
 201  
      * Appointment (and/or one of its contained sub-objects) and a record is
 202  
      * found for that identifier, the validation checks if the Appointment can
 203  
      * be updated to the new values. If an identifier is not present or a record
 204  
      * does not exist, the validation checks if the object with the given data
 205  
      * can be created.
 206  
      *
 207  
      * @param validationTypeKey  the identifier for the validation Type
 208  
      * @param personId           identifier of the person
 209  
      * @param appointmentSlotId  appointment slot of the person
 210  
      * @param appointmentTypeKey appointment type
 211  
      * @param appointmentInfo    detailed information about the appointment
 212  
      * @param contextInfo        Context information containing the principalId
 213  
      *                           and locale information about the caller of
 214  
      *                           service operation
 215  
      * @return a list of validation results or an empty list if validation
 216  
      *         succeeded
 217  
      * @throws DoesNotExistException     validationTypeKey, personId,
 218  
      *                                   appointmentSlotId or appointmentTypeKey
 219  
      *                                   not found
 220  
      * @throws InvalidParameterException invalid appointmentInfo or contextInfo
 221  
      * @throws MissingParameterException validationTypeKey, personId,
 222  
      *                                   appointmentSlotId, appointmentTypeKey
 223  
      *                                   or contextInfo is missing or null
 224  
      * @throws OperationFailedException  unable to complete request
 225  
      * @throws PermissionDeniedException an authorization failure occurred
 226  
      */
 227  
     public List<ValidationResultInfo> validateAppointment(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "personId") String personId, @WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "appointmentInfo") AppointmentInfo appointmentInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 228  
 
 229  
     /**
 230  
      * Creates an Appointment. Most of the time the personId is from the
 231  
      * Population in the AppointmentWindow.
 232  
      *
 233  
      * @param personId           identifier of the person
 234  
      * @param appointmentSlotId  appointment slot of the person
 235  
      * @param appointmentTypeKey appointment type
 236  
      * @param appointmentInfo    detailed information about the appointment
 237  
      * @param contextInfo        Context information containing the principalId
 238  
      *                           and locale information about the caller of
 239  
      *                           service operation
 240  
      * @return detailed information about the appointment
 241  
      * @throws DataValidationErrorException supplied data is invalid
 242  
      * @throws DoesNotExistException        appointmentSlotId or appointmentTypeKey
 243  
      *                                      does not exist
 244  
      * @throws InvalidParameterException    invalid appointmentInfo or
 245  
      *                                      contextInfo
 246  
      * @throws MissingParameterException    personId, appointmentSlotId,
 247  
      *                                      appointmentTypeKey or contextInfo is
 248  
      *                                      missing or null
 249  
      * @throws OperationFailedException     unable to complete request
 250  
      * @throws PermissionDeniedException    an authorization failure occurred
 251  
      * @throws ReadOnlyException            an attempt at supplying information
 252  
      *                                      designated as read only
 253  
      */
 254  
     public AppointmentInfo createAppointment(@WebParam(name = "personId") String personId, @WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "appointmentInfo") AppointmentInfo appointmentInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 255  
 
 256  
     /**
 257  
      * Generate Appointments for an AppointmentWindow.
 258  
      *
 259  
      * @param appointmentWindowId appointment window to which these appointments belong
 260  
      * @param appointmentTypeKey  appointment type
 261  
      * @param contextInfo         Context information containing the principalId
 262  
      *                            and locale information about the caller of
 263  
      *                            service operation
 264  
      * @return status of the operation (success, failed)
 265  
      * @throws DataValidationErrorException supplied data is invalid
 266  
      * @throws DoesNotExistException        appointmentWindowId or appointmentTypeKey
 267  
      *                                      does not exist
 268  
      * @throws InvalidParameterException    invalid appointmentInfo or
 269  
      *                                      contextInfo
 270  
      * @throws MissingParameterException    personId, appointmentWindowId,
 271  
      *                                      appointmentTypeKey or contextInfo is
 272  
      *                                      missing or null
 273  
      * @throws OperationFailedException     unable to complete request
 274  
      * @throws PermissionDeniedException    an authorization failure occurred
 275  
      * @throws ReadOnlyException            an attempt at supplying information
 276  
      *                                      designated as read only
 277  
      * @impl AppointmentSlots are assumed to be already generated for the
 278  
      * AppointmentWindow
 279  
      * @impl Return the number of appointments created as part of StatusInfo
 280  
      * message field
 281  
      */
 282  
     public StatusInfo generateAppointmentsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 283  
 
 284  
     /**
 285  
      * Updates a relationship between a person and their appointment.
 286  
      *
 287  
      * @param appointmentId   identifier of the appointment relationship to be
 288  
      *                        updated
 289  
      * @param appointmentInfo information about the object appointmentInfo to be
 290  
      *                        updated
 291  
      * @param contextInfo     context information containing the principalId and
 292  
      *                        locale information about the caller of service
 293  
      *                        operation
 294  
      * @return updated appointment relationship information
 295  
      * @throws DataValidationErrorException one or more values invalid for this
 296  
      *                                      operation
 297  
      * @throws DoesNotExistException        appointmentId not found
 298  
      * @throws InvalidParameterException    invalid appointmentInfo or
 299  
      *                                      contextInfo
 300  
      * @throws MissingParameterException    appointmentId, appointmentInfo or
 301  
      *                                      contextInfo is missing or null
 302  
      * @throws OperationFailedException     unable to complete request
 303  
      * @throws PermissionDeniedException    an authorization failure occurred
 304  
      * @throws ReadOnlyException            an attempt at supplying information
 305  
      *                                      designated as read-only
 306  
      * @throws VersionMismatchException     optimistic locking failure or the
 307  
      *                                      action was attempted on an out of
 308  
      *                                      date version
 309  
      */
 310  
     public AppointmentInfo updateAppointment(@WebParam(name = "appointmentId") String appointmentId, @WebParam(name = "appointmentInfo") AppointmentInfo appointmentInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 311  
 
 312  
     /**
 313  
      * Removes appointment relationship between a person and a slot.
 314  
      *
 315  
      * @param appointmentId object Appointment relationship identifier
 316  
      * @param contextInfo   context information containing the principalId and
 317  
      *                      locale information about the caller of service
 318  
      *                      operation
 319  
      * @return status of the operation (success, failed)
 320  
      * @throws DoesNotExistException     appointmentId not found
 321  
      * @throws InvalidParameterException invalid contextInfo
 322  
      * @throws MissingParameterException appointmentId or contextInfo is missing
 323  
      *                                   or null
 324  
      * @throws OperationFailedException  unable to complete request
 325  
      * @throws PermissionDeniedException an authorization failure occurred
 326  
      */
 327  
     public StatusInfo deleteAppointment(@WebParam(name = "appointmentId") String appointmentId, 
 328  
             @WebParam(name = "contextInfo") ContextInfo contextInfo) 
 329  
             throws DoesNotExistException, InvalidParameterException, 
 330  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 331  
 
 332  
     /**
 333  
      * Delete all appointments connected to this slot.
 334  
      * 
 335  
      * This does NOT delete the slot itself.
 336  
      *
 337  
      * @param appointmentSlotId object Appointment relationship identifier
 338  
      * @param contextInfo       context information containing the principalId
 339  
      *                          and locale information about the caller of
 340  
      *                          service operation
 341  
      * @return status of the operation (success, failed)
 342  
      * @throws DoesNotExistException     appointmentSlotId not found
 343  
      * @throws InvalidParameterException invalid contextInfo
 344  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 345  
      *                                   missing or null
 346  
      * @throws OperationFailedException  unable to complete request
 347  
      * @throws PermissionDeniedException an authorization failure occurred
 348  
      * @impl capture number of appointments deleted in the message field of
 349  
      * StatusInfo
 350  
      */
 351  
     public StatusInfo deleteAppointmentsBySlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 352  
 
 353  
     /**
 354  
      * Delete all appointments connected to the AppointmentWindow
 355  
      * 
 356  
      * This chains through and deletes all appointments attached to slots that
 357  
      * are attached to the window.
 358  
      * 
 359  
      * This does NOT delete the slots.
 360  
      *
 361  
      * @param appointmentWindowId object Appointment relationship identifier
 362  
      * @param contextInfo         context information containing the principalId
 363  
      *                            and locale information about the caller of
 364  
      *                            service operation
 365  
      * @return status of the operation (success, failed)
 366  
      * @throws DoesNotExistException     appointmentWindowId not found
 367  
      * @throws InvalidParameterException invalid contextInfo
 368  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 369  
      *                                   missing or null
 370  
      * @throws OperationFailedException  unable to complete request
 371  
      * @throws PermissionDeniedException an authorization failure occurred
 372  
      * @impl capture number of appointments deleted in the message field of
 373  
      * StatusInfo
 374  
      */
 375  
     public StatusInfo deleteAppointmentsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 376  
 
 377  
     /**
 378  
      * Retrieves an AppointmentWindow
 379  
      *
 380  
      * @param appointmentWindowId a unique Id of an AppointmentWindow
 381  
      * @param contextInfo         Context information containing the principalId
 382  
      *                            and locale information about the caller of
 383  
      *                            service operation
 384  
      * @return an AppointmentWindow
 385  
      * @throws DoesNotExistException     appointmentWindowId not found
 386  
      * @throws InvalidParameterException invalid contextInfo
 387  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 388  
      *                                   missing or null
 389  
      * @throws OperationFailedException  unable to complete request
 390  
      * @throws PermissionDeniedException an authorization failure occurred
 391  
      */
 392  
     public AppointmentWindowInfo getAppointmentWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 393  
 
 394  
     /**
 395  
      * Retrieves a list of AppointmentWindows corresponding to the given list of
 396  
      * AppointmentWindow Ids.
 397  
      *
 398  
      * @param appointmentWindowIds list of AppointmentWindows to be retrieved
 399  
      * @param contextInfo          Context information containing the
 400  
      *                             principalId and locale information about the
 401  
      *                             caller of service operation
 402  
      * @return a list of AppointmentWindows
 403  
      * @throws DoesNotExistException     a appointmentWindowId in list not
 404  
      *                                   found
 405  
      * @throws InvalidParameterException invalid contextInfo
 406  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 407  
      *                                   missing or null
 408  
      * @throws OperationFailedException  unable to complete request
 409  
      * @throws PermissionDeniedException an authorization failure occurred
 410  
      */
 411  
     public List<AppointmentWindowInfo> getAppointmentWindowsByIds(@WebParam(name = "appointmentWindowIds") List<String> appointmentWindowIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 412  
 
 413  
     /**
 414  
      * Retrieves a list of AppointmentWindow Ids by AppointmentWindow Type.
 415  
      *
 416  
      * @param appointmentWindowTypeKey an identifier for an AppointmentWindow
 417  
      *                                 Type
 418  
      * @param contextInfo              Context information containing the
 419  
      *                                 principalId and locale information about
 420  
      *                                 the caller of service operation
 421  
      * @return a list of AppointmentWindow identifiers matching
 422  
      *         appointmentWindowTypeKey or an empty list if none found
 423  
      * @throws InvalidParameterException invalid contextInfo
 424  
      * @throws MissingParameterException appointmentWindowTypeKey or contextInfo
 425  
      *                                   is missing or null
 426  
      * @throws OperationFailedException  unable to complete request
 427  
      * @throws PermissionDeniedException an authorization failure occurred
 428  
      */
 429  
     public List<String> getAppointmentWindowIdsByType(@WebParam(name = "appointmentWindowTypeKey") String appointmentWindowTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 430  
 
 431  
     /**
 432  
      * Retrieves all AppointmentWindows associated with a Population
 433  
      *
 434  
      * @param populationId the identifier for the AppointmentSlot
 435  
      * @param contextInfo  Context information containing the principalId and
 436  
      *                     locale information about the caller of service
 437  
      *                     operation
 438  
      * @return AppointmentWindows associated with the given Population or an
 439  
      *         empty list if none found
 440  
      * @throws InvalidParameterException contextInfo is not valid
 441  
      * @throws MissingParameterException populationId or contextInfo is missing
 442  
      *                                   or null
 443  
      * @throws OperationFailedException  unable to complete request
 444  
      * @throws PermissionDeniedException an authorization failure occurred
 445  
      */
 446  
     public List<String> getAppointmentWindowIdsByPopulation(@WebParam(name = "populationId") String populationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 447  
 
 448  
 
 449  
     /**
 450  
      * Retrieves all AppointmentWindows associated with a Period milestone
 451  
      *
 452  
      * @param periodMilestoneId the identifier for the AppointmentSlot
 453  
      * @param contextInfo       Context information containing the principalId
 454  
      *                          and locale information about the caller of
 455  
      *                          service operation
 456  
      * @return AppointmentWindows associated with the given Population or an
 457  
      *         empty list if none found
 458  
      * @throws InvalidParameterException contextInfo is not valid
 459  
      * @throws MissingParameterException periodMilestoneId or contextInfo is
 460  
      *                                   missing or null
 461  
      * @throws OperationFailedException  unable to complete request
 462  
      * @throws PermissionDeniedException an authorization failure occurred
 463  
      */
 464  
     public List<AppointmentWindowInfo> getAppointmentWindowsByPeriod(@WebParam(name = "periodMilestoneId") String periodMilestoneId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 465  
 
 466  
     /**
 467  
      * Searches for AppointmentWindows based on the criteria and returns a list
 468  
      * of AppointmentWindow identifiers which match the search criteria.
 469  
      *
 470  
      * @param criteria    the search criteria
 471  
      * @param contextInfo Context information containing the principalId and
 472  
      *                    locale information about the caller of service
 473  
      *                    operation
 474  
      * @return list of AppointmentWindow Ids
 475  
      * @throws InvalidParameterException invalid contextInfo
 476  
      * @throws MissingParameterException criteria, contextInfo is missing or
 477  
      *                                   null
 478  
      * @throws OperationFailedException  unable to complete request
 479  
      * @throws PermissionDeniedException an authorization failure occurred
 480  
      */
 481  
     public List<String> searchForAppointmentWindowIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 482  
 
 483  
     /**
 484  
      * Searches for AppointmentWindows based on the criteria and returns a list
 485  
      * of AppointmentWindows which match the search criteria.
 486  
      *
 487  
      * @param criteria    the search criteria
 488  
      * @param contextInfo Context information containing the principalId and
 489  
      *                    locale information about the caller of service
 490  
      *                    operation
 491  
      * @return list of Appointment information
 492  
      * @throws InvalidParameterException invalid contextInfo
 493  
      * @throws MissingParameterException criteria, contextInfo is missing or
 494  
      *                                   null
 495  
      * @throws OperationFailedException  unable to complete request
 496  
      * @throws PermissionDeniedException an authorization failure occurred
 497  
      */
 498  
     public List<AppointmentWindowInfo> searchForAppointmentWindows(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 499  
 
 500  
     /**
 501  
      * Validates an AppointmentWindow. Depending on the value of validationType,
 502  
      * this validation could be limited to tests on just the current
 503  
      * AppointmentWindow and its directly contained sub-objects or expanded to
 504  
      * perform all tests related to this AppointmentWindow. If an identifier is
 505  
      * present for the AppointmentWindow (and/or one of its contained
 506  
      * sub-objects) and a record is found for that identifier, the validation
 507  
      * checks if the AppointmentWindow can be updated to the new values. If an
 508  
      * identifier is not present or a record does not exist, the validation
 509  
      * checks if the object with the given data can be created.
 510  
      *
 511  
      * @param validationTypeKey        the identifier for the validation Type
 512  
      * @param appointmentWindowTypeKey appointment type
 513  
      * @param appointmentWindowInfo    detailed information about the
 514  
      *                                 appointment
 515  
      * @param contextInfo              Context information containing the
 516  
      *                                 principalId and locale information about
 517  
      *                                 the caller of service operation
 518  
      * @return a list of validation results or an empty list if validation
 519  
      *         succeeded
 520  
      * @throws DoesNotExistException     assignedOrderTypeKey or appointmentWindowTypeKey
 521  
      *                                   does not exist
 522  
      * @throws InvalidParameterException invalid appointmentWindowInfo or
 523  
      *                                   contextInfo
 524  
      * @throws MissingParameterException periodMilestoneId, populationId,
 525  
      *                                   assignedOrderTypeKey, appointmentWindowTypeKey
 526  
      *                                   or contextInfo is missing or null
 527  
      * @throws OperationFailedException  unable to complete request
 528  
      * @throws PermissionDeniedException an authorization failure occurred
 529  
      */
 530  
     public List<ValidationResultInfo> validateAppointmentWindow(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "appointmentWindowTypeKey") String appointmentWindowTypeKey, @WebParam(name = "appointmentWindowInfo") AppointmentWindowInfo appointmentWindowInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 531  
 
 532  
 
 533  
     /**
 534  
      * Creates an AppointmentWindow
 535  
      *
 536  
      * @param appointmentWindowTypeKey appointment type
 537  
      * @param appointmentWindowInfo    detailed information about the
 538  
      *                                 appointment
 539  
      * @param contextInfo              Context information containing the
 540  
      *                                 principalId and locale information about
 541  
      *                                 the caller of service operation
 542  
      * @return detailed information about the appointment
 543  
      * @throws DataValidationErrorException supplied data is invalid
 544  
      * @throws DoesNotExistException        assignedOrderTypeKey or appointmentWindowTypeKey
 545  
      *                                      does not exist
 546  
      * @throws InvalidParameterException    invalid appointmentWindowInfo or
 547  
      *                                      contextInfo
 548  
      * @throws MissingParameterException    periodMilestoneId, populationId,
 549  
      *                                      assignedOrderTypeKey, appointmentWindowTypeKey
 550  
      *                                      or contextInfo is missing or null
 551  
      * @throws OperationFailedException     unable to complete request
 552  
      * @throws PermissionDeniedException    an authorization failure occurred
 553  
      * @throws ReadOnlyException            an attempt at supplying information
 554  
      *                                      designated as read only
 555  
      */
 556  
     public AppointmentWindowInfo createAppointmentWindow(@WebParam(name = "appointmentWindowTypeKey") String appointmentWindowTypeKey, @WebParam(name = "appointmentWindowInfo") AppointmentWindowInfo appointmentWindowInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 557  
 
 558  
     /**
 559  
      * Updates an AppointmentWindow
 560  
      *
 561  
      * @param appointmentWindowId   identifier of the appointment relationship
 562  
      *                              to be updated
 563  
      * @param appointmentWindowInfo information about the object appointmentWindow
 564  
      *                              to be updated
 565  
      * @param contextInfo           context information containing the
 566  
      *                              principalId and locale information about the
 567  
      *                              caller of service operation
 568  
      * @return updated appointment relationship information
 569  
      * @throws DataValidationErrorException one or more values invalid for this
 570  
      *                                      operation
 571  
      * @throws DoesNotExistException        appointmentWindowId not found
 572  
      * @throws InvalidParameterException    invalid appointmentWindowInfo or
 573  
      *                                      contextInfo
 574  
      * @throws MissingParameterException    appointmentWindowId, appointmentWindowInfo
 575  
      *                                      or contextInfo is missing or null
 576  
      * @throws OperationFailedException     unable to complete request
 577  
      * @throws PermissionDeniedException    an authorization failure occurred
 578  
      * @throws ReadOnlyException            an attempt at supplying information
 579  
      *                                      designated as read-only
 580  
      * @throws VersionMismatchException     optimistic locking failure or the
 581  
      *                                      action was attempted on an out of
 582  
      *                                      date version
 583  
      */
 584  
     public AppointmentWindowInfo updateAppointmentWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentWindowInfo") AppointmentWindowInfo appointmentWindowInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 585  
 
 586  
     /**
 587  
      * Deletes an AppointmentWindow and associated slots/appointments (i.e., cascading delete)
 588  
      *
 589  
      * @param appointmentWindowId AppointmentWindow identifier
 590  
      * @param contextInfo         context information containing the principalId
 591  
      *                            and locale information about the caller of
 592  
      *                            service operation
 593  
      * @return status of the operation (success, failed)
 594  
      * @throws DoesNotExistException     appointmentWindowId not found
 595  
      * @throws InvalidParameterException invalid contextInfo
 596  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 597  
      *                                   missing or null
 598  
      * @throws OperationFailedException  unable to complete request
 599  
      * @throws PermissionDeniedException an authorization failure occurred
 600  
      */
 601  
     public StatusInfo deleteAppointmentWindowCascading(String appointmentWindowId,
 602  
             ContextInfo contextInfo)
 603  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 604  
             OperationFailedException, PermissionDeniedException;
 605  
 
 606  
     /**
 607  
      * Retrieves an AppointmentSlot
 608  
      *
 609  
      * @param appointmentSlotId a unique Id of an AppointmentSlot
 610  
      * @param contextInfo         Context information containing the principalId
 611  
      *                            and locale information about the caller of
 612  
      *                            service operation
 613  
      * @return an AppointmentSlot
 614  
      * @throws DoesNotExistException     appointmentSlotId not found
 615  
      * @throws InvalidParameterException invalid contextInfo
 616  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 617  
      *                                   missing or null
 618  
      * @throws OperationFailedException  unable to complete request
 619  
      * @throws PermissionDeniedException an authorization failure occurred
 620  
      */
 621  
     public AppointmentSlotInfo getAppointmentSlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 622  
 
 623  
     /**
 624  
      * Retrieves a list of AppointmentSlots corresponding to the given list of
 625  
      * AppointmentSlot Ids.
 626  
      *
 627  
      * @param appointmentSlotIds list of Appointments to be retrieved
 628  
      * @param contextInfo    Context information containing the principalId and
 629  
      *                       locale information about the caller of service
 630  
      *                       operation
 631  
      * @return a list of Appointments
 632  
      * @throws DoesNotExistException     an appointmentSlotId in list not found
 633  
      * @throws InvalidParameterException invalid contextInfo
 634  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 635  
      *                                   missing or null
 636  
      * @throws OperationFailedException  unable to complete request
 637  
      * @throws PermissionDeniedException an authorization failure occurred
 638  
      */
 639  
     public List<AppointmentSlotInfo> getAppointmentSlotsByIds(@WebParam(name = "appointmentSlotIds") List<String> appointmentSlotIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 640  
 
 641  
     /**
 642  
      * Retrieves all AppointmentWindows belonging to the person and period
 643  
      *
 644  
      * @param personId          the identifier for the Person
 645  
      * @param periodMilestoneId the identifier of the Period milestone
 646  
      * @param contextInfo       Context information containing the principalId
 647  
      *                          and locale information about the caller of
 648  
      *                          service operation
 649  
      * @return AppointmentSlots belonging to the Person or an empty list if none
 650  
      *         found
 651  
      * @throws InvalidParameterException contextInfo is not valid
 652  
      * @throws MissingParameterException personId or contextInfo is missing or
 653  
      *                                   null
 654  
      * @throws OperationFailedException  unable to complete request
 655  
      * @throws PermissionDeniedException an authorization failure occurred
 656  
      */
 657  
     public List<AppointmentSlotInfo> getAppointmentSlotsByPersonAndPeriod(@WebParam(name = "personId") String personId, @WebParam(name = "periodMilestoneId") String periodMilestoneId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 658  
 
 659  
     /**
 660  
      * Retrieves all AppointmentWindows to the given AppointmentWindowSlot
 661  
      *
 662  
      * @param appointmentWindowId the identifier for the AppointmentWindow
 663  
      * @param contextInfo         Context information containing the principalId
 664  
      *                            and locale information about the caller of
 665  
      *                            service operation
 666  
      * @return AppointmentSlots belonging to the AppointmentWindow or an empty
 667  
      *         list if none found
 668  
      * @throws InvalidParameterException contextInfo is not valid
 669  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 670  
      *                                   missing or null
 671  
      * @throws OperationFailedException  unable to complete request
 672  
      * @throws PermissionDeniedException an authorization failure occurred
 673  
      */
 674  
     public List<AppointmentSlotInfo> getAppointmentSlotsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 675  
 
 676  
 
 677  
     /**
 678  
      * Searches for AppointmentSlots based on the criteria and returns a list of
 679  
      * AppointmentSlot identifiers which match the search criteria.
 680  
      *
 681  
      * @param criteria    the search criteria
 682  
      * @param contextInfo Context information containing the principalId and
 683  
      *                    locale information about the caller of service
 684  
      *                    operation
 685  
      * @return list of AppointmentSlot Ids
 686  
      * @throws InvalidParameterException invalid contextInfo
 687  
      * @throws MissingParameterException criteria, contextInfo is missing or
 688  
      *                                   null
 689  
      * @throws OperationFailedException  unable to complete request
 690  
      * @throws PermissionDeniedException an authorization failure occurred
 691  
      */
 692  
     public List<String> searchForAppointmentSlotIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 693  
 
 694  
     /**
 695  
      * Searches for AppointmentSlots based on the criteria and returns a list of
 696  
      * AppointmentSlots which match the search criteria.
 697  
      *
 698  
      * @param criteria    the search criteria
 699  
      * @param contextInfo Context information containing the principalId and
 700  
      *                    locale information about the caller of service
 701  
      *                    operation
 702  
      * @return list of AppointmentSlot information
 703  
      * @throws InvalidParameterException invalid contextInfo
 704  
      * @throws MissingParameterException criteria, contextInfo is missing or
 705  
      *                                   null
 706  
      * @throws OperationFailedException  unable to complete request
 707  
      * @throws PermissionDeniedException an authorization failure occurred
 708  
      */
 709  
     public List<AppointmentSlotInfo> searchForAppointmentSlots(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 710  
 
 711  
     /**
 712  
      * Validate an AppointmentSlot
 713  
      *
 714  
      * @param validationTypeKey      the identifier for the validation Type
 715  
      * @param appointmentWindowId    appointment slot of the person
 716  
      * @param appointmentSlotTypeKey appointment slot type
 717  
      * @param appointmentSlotInfo    detailed information about the
 718  
      *                               AppointmentSlot
 719  
      * @param contextInfo            context information containing the
 720  
      *                               principalId and locale information about
 721  
      *                               the caller of service operation
 722  
      * @return a list of validation results or an empty list if validation
 723  
      *         succeeded
 724  
      * @throws DoesNotExistException        validationTypeKey, appointmentWindowId
 725  
      *                                      or appointmentSlotTypeKey does not
 726  
      *                                      exist
 727  
      * @throws InvalidParameterException    invalid contextInfo
 728  
      * @throws MissingParameterException    validationTypeKey, appointmentWindowId,
 729  
      *                                      appointmentSlotTypeKey or
 730  
      *                                      contextInfo is missing or null
 731  
      * @throws OperationFailedException     unable to complete request
 732  
      * @throws PermissionDeniedException    an authorization failure occurred
 733  
      */
 734  
     public List<ValidationResultInfo> validateAppointmentSlot(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentSlotTypeKey") String appointmentSlotTypeKey, @WebParam(name = "appointmentSlotInfo") AppointmentSlotInfo appointmentSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 735  
 
 736  
     /**
 737  
      * Create an AppointmentSlot
 738  
      *
 739  
      * @param appointmentWindowId    appointment slot of the person
 740  
      * @param appointmentSlotTypeKey appointment slot type
 741  
      * @param appointmentSlotInfo    detailed information about the
 742  
      *                               AppointmentSlot
 743  
      * @param contextInfo            context information containing the
 744  
      *                               principalId and locale information about
 745  
      *                               the caller of service operation
 746  
      * @return created AppointmentSlot for the given AppointmentWindow and slot
 747  
      *         information
 748  
      * @throws DataValidationErrorException supplied data is invalid
 749  
      * @throws DoesNotExistException        appointmentWindowId or appointmentSlotTypeKey
 750  
      *                                      does not exist
 751  
      * @throws InvalidParameterException    invalid contextInfo
 752  
      * @throws MissingParameterException    appointmentWindowId, appointmentSlotTypeKey
 753  
      *                                      or contextInfo is missing or null
 754  
      * @throws OperationFailedException     unable to complete request
 755  
      * @throws PermissionDeniedException    an authorization failure occurred
 756  
      * @throws ReadOnlyException            an attempt at supplying information
 757  
      *                                      designated as read only
 758  
      * @impl Check out blackout milestone type and corresponding milestones
 759  
      */
 760  
     public AppointmentSlotInfo createAppointmentSlot(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentSlotTypeKey") String appointmentSlotTypeKey, @WebParam(name = "appointmentSlotInfo") AppointmentSlotInfo appointmentSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 761  
 
 762  
     /**
 763  
      * Generate AppointmentSlots for the AppointmentWindow using its
 764  
      * AppointmentSlotRule information
 765  
      *
 766  
      * @param appointmentWindowId appointment window to which these slots belong
 767  
      * @param contextInfo         context information containing the principalId
 768  
      *                            and locale information about the caller of
 769  
      *                            service operation
 770  
      * @return created AppointmentSlots for the window using its
 771  
      *         AppointmentSlotRule information
 772  
      * @throws DataValidationErrorException supplied data is invalid
 773  
      * @throws DoesNotExistException        appointmentWindowId does not exist
 774  
      * @throws InvalidParameterException    invalid contextInfo
 775  
      * @throws MissingParameterException    appointmentWindowId or contextInfo
 776  
      *                                      is missing or null
 777  
      * @throws OperationFailedException     unable to complete request
 778  
      * @throws PermissionDeniedException    an authorization failure occurred
 779  
      * @throws ReadOnlyException            an attempt at supplying information
 780  
      *                                      designated as read only
 781  
      * @impl Check out blackout milestone type and corresponding milestones
 782  
      * @impl throw OperationFailedException if unable to create needed slots either because  both EndDate and MaxAppointmentsPerSlot were specified and cannot be satisfied or due to some other reason
 783  
      */
 784  
     public List<AppointmentSlotInfo> generateAppointmentSlotsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 785  
 
 786  
     /**
 787  
      * Updates an appointment slot
 788  
      *
 789  
      * @param appointmentSlotId   identifier of the appointmentSlot to be
 790  
      *                            updated
 791  
      * @param appointmentSlotInfo information about the object appointmentSlot
 792  
      *                            to be updated
 793  
      * @param contextInfo         context information containing the principalId
 794  
      *                            and locale information about the caller of
 795  
      *                            service operation
 796  
      * @return updated appointment slot  information
 797  
      * @throws DataValidationErrorException one or more values invalid for this
 798  
      *                                      operation
 799  
      * @throws DoesNotExistException        appointmentSlotId not found
 800  
      * @throws InvalidParameterException    invalid appointmentSlotInfo or
 801  
      *                                      contextInfo
 802  
      * @throws MissingParameterException    appointmentSlotId, appointmentSlotInfo
 803  
      *                                      or contextInfo is missing or null
 804  
      * @throws OperationFailedException     unable to complete request
 805  
      * @throws PermissionDeniedException    an authorization failure occurred
 806  
      * @throws ReadOnlyException            an attempt at supplying information
 807  
      *                                      designated as read-only
 808  
      * @throws VersionMismatchException     optimistic locking failure or the
 809  
      *                                      action was attempted on an out of
 810  
      *                                      date version
 811  
      */
 812  
     public AppointmentSlotInfo updateAppointmentSlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "appointmentSlotInfo") AppointmentSlotInfo appointmentSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 813  
 
 814  
     /**
 815  
      * Delete an AppointmentSlot, including all associated Appointments (i.e., cascading delete)
 816  
      *
 817  
      * @param appointmentSlotId the identifier for the AppointmentSlot
 818  
      * @param contextInfo       context information containing the principalId
 819  
      *                          and locale information about the caller of
 820  
      *                          service operation
 821  
      * @return status of the operation (success, failed)
 822  
      * @throws DoesNotExistException          appointmentWindowId or appointmentSlotId
 823  
      *                                        not found
 824  
      * @throws InvalidParameterException      invalid contextInfo
 825  
      * @throws MissingParameterException      appointmentWindowId, appointmentSlotId
 826  
      *                                        or contextInfo is missing or null
 827  
      * @throws OperationFailedException       unable to complete request
 828  
      * @throws PermissionDeniedException      an authorization failure occurred
 829  
      */
 830  
     public StatusInfo deleteAppointmentSlotCascading(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 831  
 
 832  
     /**
 833  
      * Deletes AppointmentSlots belonging to an AppointmentWindow, including associated appointments (i.e., cascading
 834  
      * delete)
 835  
      *
 836  
      * @param appointmentWindowId object Appointment relationship identifier
 837  
      * @param contextInfo         context information containing the principalId
 838  
      *                            and locale information about the caller of
 839  
      *                            service operation
 840  
      * @return status of the operation (success, failed)
 841  
      * @throws DoesNotExistException          appointmentWindowId not found
 842  
      * @throws InvalidParameterException      invalid contextInfo
 843  
      * @throws MissingParameterException      appointmentWindowId or contextInfo
 844  
      *                                        is missing or null
 845  
      * @throws OperationFailedException       unable to complete request
 846  
      * @throws PermissionDeniedException      an authorization failure occurred
 847  
      * @impl delete the corresponding appointments
 848  
      */
 849  
     public StatusInfo deleteAppointmentSlotsByWindowCascading(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 850  
 
 851  
 }