### *** This interface provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.information.metadata

# Interface AuthorizationBaseInterface

All Superinterfaces:
  `Remote`

All Known Subinterfaces:
  `AuthorizationUtilInterface`

All Known Implementing Classes:
  `AuthorizationUtil`

@SASScope("ALL") @BinaryCompatibilityOnly public interface AuthorizationBaseInterface extends Remote
AuthorizationBase provides authorization methods common to protected Object and ACT definition usage.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `commit()`
  Commit Authorization Changes Any pending Authorization changes will be committed on the Server.
  `void`
  `discard()`
  Discard Authorization Changes Any pending Authorization changes will be discarded on the Server.
  `List<String>`
  `getApplicablePermissions()`
  Obtains permissions applicable to the object according to its PublicType
  `AuthorizationInfoInterface`
  `getAuthorizations(IdentityInterface identity, List<String> permissions)`
  Get authorizations for a single identity
  `List<AuthorizationInfoInterface>`
  `getAuthorizations(List<IdentityInterface> identities, List<String> permissions)`
  Get authorizations for multiple identities
  `List<AuthorizationInfoInterface>`
  `getAuthorizationsAll()`
  Get all authorizations
  `AuthorizationExplainedInfoInterface`
  `getAuthorizationsExplained(IdentityInterface identity, List<String> permissions)`
  Get authorization sources explained for a single identity.
  `List<AuthorizationExplainedInfoInterface>`
  `getAuthorizationsExplained(List<IdentityInterface> identities, List<String> permissions)`
  Get authorization sources explained for a list of identities.
  `List<AuthorizationExplainedInfoInterface>`
  `getAuthorizationsExplainedAll()`
  Get authorization sources explained for all identities and permissions.
  `boolean`
  `getCommitOnUpdate()`
  Obtains Commit with Object Store boolean indicator
  `List<AuthorizationIdentityInfoInterface>`
  `getIdentityInfo()`
  Returns authorization identity info corresponding to permissions on an object
  `void`
  `setAuthorizations(IdentityInterface identity, List<PermissionInfoInterface> permissionInfoList)`
  Set permission(s) for a single identity
  `void`
  `setAuthorizations(List<AuthorizationInfoInterface> authorizations)`
  Set permissions for multiple identities
  `void`
  `setCommitOnUpdate(boolean commitWithStore)`
  Set Commit with Object Store boolean indicator

- ## Method Details

  - ### getCommitOnUpdate

    boolean getCommitOnUpdate() throws ServiceException, RemoteException
    Obtains Commit with Object Store boolean indicator
    Returns:
      boolean value indicating if TransactionContext is committed with ObjectStore update
    Throws:
      `com.sas.metadata.remote.MdException`
      `RemoteException` - In the event of remote object failure.
      `ServiceException`

  - ### setCommitOnUpdate

    void setCommitOnUpdate(boolean commitWithStore) throws ServiceException, RemoteException
    Set Commit with Object Store boolean indicator
    Parameters:
      `boolean` - value indicating if Authorization TransactionContext is committed with ObjectStore update
    Throws:
      `com.sas.metadata.remote.MdException`
      `RemoteException` - In the event of remote object failure.
      `ServiceException`

  - ### getApplicablePermissions

    List<String> getApplicablePermissions() throws ServiceException, RemoteException
    Obtains permissions applicable to the object according to its PublicType

    Note that for ACT definition the entire list of available permissions is returned

    Returns:
      List List of Permission names
    Throws:
      `ServiceException`
      `RemoteException` - In the event of remote object failure.

  - ### getIdentityInfo

    List<AuthorizationIdentityInfoInterface> getIdentityInfo() throws ServiceException, RemoteException
    Returns authorization identity info corresponding to permissions on an object
    Returns:
      A List of `AuthorizationIdentityInfoInterface` objects
    Throws:
      `ServiceException`
      `RemoteException` - In the event of remote object failure.

  - ### getAuthorizations

    AuthorizationInfoInterface getAuthorizations(IdentityInterface identity, List<String> permissions) throws ServiceException, RemoteException
    Get authorizations for a single identity
    Parameters:
      `identity` - An Identity object representing the User, Group, or Role for which permissions are sought. If null is specified then an empty List is returned.
      `permissions` - A List of Strings containing the permission names for which authorizations are sought. If the List is null or empty, all applicable permissions for the object are returned.
    Returns:
      A AuthorizationInfoInterface object containing the resulting authorization settings for the Identity.
    Throws:
      `IllegalArgumentException` - If the identity parameter reference is null
      `ServiceException`
      `RemoteException` - in the event of remote object failure.

  - ### getAuthorizations

    List<AuthorizationInfoInterface> getAuthorizations(List<IdentityInterface> identities, List<String> permissions) throws ServiceException, RemoteException
    Get authorizations for multiple identities
    Parameters:
      `identities` - A List of `IdentityInterface` objects representing the Users, Groups, or Roles for which permissions are sought. If the List is null or empty, authorizations for all relevant identities are returned.
      `permissions` - A List of Strings containing the permission names for which authorizations are sought. If the List is null or empty, all applicable permissions for the object are returned.
    Returns:
      List<`AuthorizationInfoInterface`> A List containing the resulting authorization info
    Throws:
      `ServiceException`
      `RemoteException` - in the event of remote object failure.

  - ### getAuthorizationsAll

    List<AuthorizationInfoInterface> getAuthorizationsAll() throws ServiceException, RemoteException
    Get all authorizations
    Returns:
      List<`AuthorizationInfoInterface`> A List containing the resulting authorization info
    Throws:
      `ServiceException`
      `RemoteException` - in the event of remote object failure.

  - ### setAuthorizations

    void setAuthorizations(IdentityInterface identity, List<PermissionInfoInterface> permissionInfoList) throws ServiceException, RemoteException
    Set permission(s) for a single identity
    Parameters:
      `identity` - The identity for which permissions are being set
      `permissionInfoList` - A List of one or more `PermissionInfoInterface` objects defining the permission(s) to set.
    Throws:
      `IllegalArgumentException` - If the identity parameter reference is null If the permissionInfoList parameter reference is null
      `ServiceException`
      `RemoteException` - In the event of remote object failure.

  - ### setAuthorizations

    void setAuthorizations(List<AuthorizationInfoInterface> authorizations) throws ServiceException, RemoteException
    Set permissions for multiple identities
    Parameters:
      `authorizations` - A List of `AuthorizationInfoInterface` instances where each represents a unique Identity and the permission(s) to be set for it.
    Throws:
      `IllegalArgumentException` - If the authorizations List parameter reference is null
      `ServiceException`
      `RemoteException` - In the event of remote object failure.

  - ### getAuthorizationsExplained

    AuthorizationExplainedInfoInterface getAuthorizationsExplained(IdentityInterface identity, List<String> permissions) throws ServiceException, RemoteException
    Get authorization sources explained for a single identity.
    Parameters:
      `identity` - An `IdentityInterface` object representing the User Group, or Role for which permissions are sought.
      `permissions` - A List of Strings containing the permission names for which authorizations are sought. If the List is null or empty, all applicable permissions for the object are returned.
    Returns:
      List<`PermissionExplainedInfoInterface`> A List containing the resulting authorization explained info
    Throws:
      `IllegalArgumentException` - If the identity parameter reference is null
      `ServiceException` - If a service level error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### getAuthorizationsExplained

    List<AuthorizationExplainedInfoInterface> getAuthorizationsExplained(List<IdentityInterface> identities, List<String> permissions) throws ServiceException, RemoteException
    Get authorization sources explained for a list of identities.
    Parameters:
      `identities` - A List of `IdentityInterface` objects representing the Users, Groups, or Roles for which authorizations are sought. If the List is null or empty, authorizations for all relevant identities are returned.
      `permissions` - A List of Strings containing the permission names for which authorizations are sought. If the List is null or empty, all applicable permissions for the object are returned.
    Returns:
      List<`PermissionExplainedInfoInterface`> A List containing the resulting authorization explained info
    Throws:
      `ServiceException` - If a service level error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### getAuthorizationsExplainedAll

    List<AuthorizationExplainedInfoInterface> getAuthorizationsExplainedAll() throws ServiceException, RemoteException
    Get authorization sources explained for all identities and permissions.
    Returns:
      List<`PermissionExplainedInfoInterface`> A List containing the resulting authorization explained info
    Throws:
      `ServiceException` - if a service level error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### commit

    void commit() throws ServiceException, RemoteException
    Commit Authorization Changes Any pending Authorization changes will be committed on the Server. Current Authorization state will be reset for the corresponding object.
    Throws:
      `ServiceException` - If a service level error occurs.
      `RemoteException` - In the event of a remote object failure.

  - ### discard

    void discard() throws ServiceException, RemoteException
    Discard Authorization Changes Any pending Authorization changes will be discarded on the Server. Current Authorization state will be reset for the corresponding object.
    Throws:
      `ServiceException` - If a service level error occurs.
      `RemoteException` - In the event of a remote object failure.