public interface ProvisionableAdminSession extends OsidSession
This session creates, updates, and deletes  Provisionables. 
   The data for create and update is provided by the consumer via the 
  form object.  OsidForms  are requested for each create or 
  update and may not be reused. 
 Create and update operations differ in their usage. To create a  
  Provisionable,  a  ProvisionableForm  is requested 
  using  getProvisionableFormForCreate()  specifying the 
  desired record  Types  or none if no record  Types 
   are needed. The returned  ProvisionableForm  will 
  indicate that it is to be used with a create operation and can be used to 
  examine metdata or validate data prior to creation. Once the  
  ProvisionableForm  is submiited to a create operation, it cannot be 
  reused with another create operation unless the first operation was 
  unsuccessful. Each  ProvisionableForm  corresponds to an 
  attempted transaction. 
 For updates,  ProvisionableForms  are requested to the 
   Provisionable   Id  that is to be updated using 
   getProvisionableFormForUpdate().  Similarly, the  
  ProvisionableForm  has metadata about the data that can be updated 
  and it can perform validation before submitting the update. The  
  ProvisionableForm  can only be used once for a successful update 
  and cannot be reused. 
 The delete operations delete  Provisionables.  To unmap a 
   Provisionable  from the current  Distributor,  
  the  ProvisionableDistributorAssignmentSession  should be 
  used. These delete operations attempt to remove the  Provisionable 
   itself thus removing it from all known  Distributor  
  catalogs. 
 This session includes an  Id  aliasing mechanism to 
  assign an external  Id  to an internally assigned Id. 
| Modifier and Type | Method and Description | 
|---|---|
| void | aliasProvisionable(Id provisionableId,
                  Id aliasId)Adds an   Id to a Provisionable for the 
  purpose of creating compatibility. | 
| boolean | canCreateProvisionables()Tests if this user can create provisionables. | 
| boolean | canCreateProvisionableWithRecordTypes(Type[] provisionableRecordTypes)Tests if this user can create a single   Provisionable using the desired record types. | 
| boolean | canDeleteProvisionables()Tests if this user can delete provisionables. | 
| boolean | canManageProvisionableAliases()Tests if this user can manage   Id aliases for 
  Provisionables. | 
| boolean | canUpdateProvisionables()Tests if this user can update provisionables. | 
| Provisionable | createProvisionable(ProvisionableForm provisionableForm)Creates a new   Provisionable. | 
| void | deleteProvisionable(Id provisionableId)Deletes a   Provisionable. | 
| Distributor | getDistributor()Gets the   Distributor associated with this session. | 
| Id | getDistributorId()Gets the   Distributor  Id associated with 
  this session. | 
| ProvisionableForm | getProvisionableFormForCreate(Id resourceId,
                             Id poolId,
                             Type[] provisionableRecordTypes)Gets the provisionable form for creating new provisionables. | 
| ProvisionableForm | getProvisionableFormForUpdate(Id provisionableId)Gets the provisionable form for updating an existing provisionable. | 
| void | updateProvisionable(ProvisionableForm provisionableForm)Updates an existing provisionable. | 
getAuthenticatedAgent, getAuthenticatedAgentId, getClockRate, getDate, getEffectiveAgent, getEffectiveAgentId, getFormatType, getLocale, isAuthenticated, startTransaction, supportsTransactionscloseId getDistributorId()
 Distributor   Id  associated with 
  this session. Distributor Id  associated with this sessionmandatory - This method must be implemented. Distributor getDistributor() throws OperationFailedException, PermissionDeniedException
 Distributor  associated with this session.OperationFailedException - unable to complete requestPermissionDeniedException - authorization failuremandatory - This method must be implemented. boolean canCreateProvisionables()
 Provisionable  will result 
  in a  PERMISSION_DENIED.  This is intended as a hint to 
  an application that may opt not to offer create operations to an 
  unauthorized user. false  if  Provisionable  creation 
          is not authorized,  true  otherwisemandatory - This method must be implemented. boolean canCreateProvisionableWithRecordTypes(Type[] provisionableRecordTypes)
 Provisionable  
  using the desired record types. While  
  ProvisioningManager.getProvisionableRecordTypes()  can be used 
  to examine which records are supported, this method tests which 
  record(s) are required for creating a specific  Provisionable. 
   Providing an empty array tests if a  Provisionable 
   can be created with no records.provisionableRecordTypes - array of provisionable record types true  if  Provisionable  creation 
          using the specified record  Types  is supported, 
           false  otherwiseNullArgumentException -  provisionableRecordTypes 
           is  null mandatory - This method must be implemented. ProvisionableForm getProvisionableFormForCreate(Id resourceId, Id poolId, Type[] provisionableRecordTypes) throws NotFoundException, OperationFailedException, PermissionDeniedException
resourceId - the  Id  for the resourcepoolId - the  Id  for the poolprovisionableRecordTypes - array of provisionable record typesNotFoundException -  resourceId  or  
          poolId  is not foundNullArgumentException -  resourceId,  or 
           poolId, or provisionableRecordTypes  is  
          null OperationFailedException - unable to complete requestPermissionDeniedException - authorization failureUnsupportedException - unable to get form for requested 
          record typesmandatory - This method must be implemented. Provisionable createProvisionable(ProvisionableForm provisionableForm) throws OperationFailedException, PermissionDeniedException
 Provisionable. provisionableForm - the form for this  Provisionable 
           Provisionable IllegalStateException -  provisionableForm 
           already used in a create transactionInvalidArgumentException - one or more of the form 
          elements is invalidNullArgumentException -  provisionableForm 
           is  null OperationFailedException - unable to complete requestPermissionDeniedException - authorization failureUnsupportedException -  provisionableForm  
          did not originate from  getProvisionableFormForCreate() 
          mandatory - This method must be implemented. boolean canUpdateProvisionables()
 Provisionable  will result 
  in a  PERMISSION_DENIED.  This is intended as a hint to 
  an application that may opt not to offer update operations to an 
  unauthorized user. false  if  Provisionable  
          modification is not authorized,  true  otherwisemandatory - This method must be implemented. ProvisionableForm getProvisionableFormForUpdate(Id provisionableId) throws NotFoundException, OperationFailedException, PermissionDeniedException
provisionableId - the  Id  of the  
          Provisionable NotFoundException -  provisionableId  is 
          not foundNullArgumentException -  provisionableId  
          is  null OperationFailedException - unable to complete requestPermissionDeniedException - authorization failuremandatory - This method must be implemented. void updateProvisionable(ProvisionableForm provisionableForm) throws OperationFailedException, PermissionDeniedException
provisionableForm - the form containing the elements to be 
          updatedIllegalStateException -  provisionableForm 
           already used in an update transactionInvalidArgumentException - the form contains an invalid 
          valueNullArgumentException -  provisionableForm 
           is  null OperationFailedException - unable to complete requestPermissionDeniedException - authorization failureUnsupportedException -  provisionableForm  
          did not originate from  getProvisionableFormForUpdate() 
          mandatory - This method must be implemented. boolean canDeleteProvisionables()
 Provisionable  will result 
  in a  PERMISSION_DENIED.  This is intended as a hint to 
  an application that may opt not to offer delete operations to an 
  unauthorized user. false  if  Provisionable  deletion 
          is not authorized,  true  otherwisemandatory - This method must be implemented. void deleteProvisionable(Id provisionableId) throws NotFoundException, OperationFailedException, PermissionDeniedException
 Provisionable. provisionableId - the  Id  of the  
          Provisionable  to removeNotFoundException -  provisionableId  not 
          foundNullArgumentException -  provisionableId  
          is  null OperationFailedException - unable to complete requestPermissionDeniedException - authorization failuremandatory - This method must be implemented. boolean canManageProvisionableAliases()
 Id  aliases for  
  Provisionables.  A return of true does not guarantee successful 
  authorization. A return of false indicates that it is known changing 
  an alias will result in a  PERMISSION_DENIED.  This is 
  intended as a hint to an application that may opt not to offer alias 
  operations to an unauthorized user. false  if  Provisionable  aliasing 
          is not authorized,  true  otherwisemandatory - This method must be implemented. void aliasProvisionable(Id provisionableId, Id aliasId) throws AlreadyExistsException, NotFoundException, OperationFailedException, PermissionDeniedException
 Id  to a  Provisionable  for the 
  purpose of creating compatibility. The primary  Id  of 
  the  Provisionable  is determined by the provider. The 
  new  Id  performs as an alias to the primary  Id 
   . If the alias is a pointer to another provisionable, it is 
  reassigned to the given provisionable  Id. provisionableId - the  Id  of a  
          Provisionable aliasId - the alias  Id AlreadyExistsException -  aliasId  is 
          already assignedNotFoundException -  provisionableId  not 
          foundNullArgumentException -  provisionableId  
          or  aliasId  is  null OperationFailedException - unable to complete requestPermissionDeniedException - authorization failuremandatory - This method must be implemented.