Class ScimService

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static URI ME_URI
      The authenticated subject alias.
      static javax.ws.rs.core.MediaType MEDIA_TYPE_SCIM_TYPE
      The SCIM media type.
    • Constructor Summary

      Constructors 
      Constructor Description
      ScimService​(javax.ws.rs.client.WebTarget baseTarget)
      Create a new client instance to the SCIM 2 service provider at the provided WebTarget.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      create​(String endpoint, T resource)
      Create the provided new SCIM resource at the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      CreateRequestBuilder<T>
      createRequest​(String endpoint, T resource)
      Build a request to create the provided new SCIM resource at the service provider.
      void delete​(String endpoint, String id)
      Delete a SCIM resource at the service provider.
      void delete​(URI url)
      Delete a SCIM resource at the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      void
      delete​(T resource)
      Delete a SCIM resource at the service provider.
      DeleteRequestBuilder deleteRequest​(String endpoint, String id)
      Build a request to delete a SCIM resource at the service provider.
      DeleteRequestBuilder deleteRequest​(URI url)
      Build a request to delete a SCIM resource at the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      DeleteRequestBuilder
      deleteRequest​(T resource)
      Build a request to delete a SCIM resource at the service provider.
      com.unboundid.scim2.common.types.ResourceTypeResource getResourceType​(String name)
      Retrieve a known resource type supported by the service provider.
      com.unboundid.scim2.common.messages.ListResponse<com.unboundid.scim2.common.types.ResourceTypeResource> getResourceTypes()
      Retrieve the resource types supported by the service provider.
      com.unboundid.scim2.common.types.SchemaResource getSchema​(String id)
      Retrieve a known schema supported by the service provider.
      com.unboundid.scim2.common.messages.ListResponse<com.unboundid.scim2.common.types.SchemaResource> getSchemas()
      Retrieve the schemas supported by the service provider.
      com.unboundid.scim2.common.types.ServiceProviderConfigResource getServiceProviderConfig()
      Retrieve the service provider configuration.
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      modify​(String endpoint, String id, com.unboundid.scim2.common.messages.PatchRequest patchRequest, Class<T> clazz)
      Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values.
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      modify​(T resource, com.unboundid.scim2.common.messages.PatchRequest patchRequest)
      Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values.
      ModifyRequestBuilder.Typed modifyRequest​(String endpoint, String id)
      Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values.
      ModifyRequestBuilder.Typed modifyRequest​(URI url)
      Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values.
      <T extends com.unboundid.scim2.common.ScimResource>
      ModifyRequestBuilder.Generic<T>
      modifyRequest​(T resource)
      Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values.
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      replace​(T resource)
      Modify a SCIM resource by replacing the resource's attributes at the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      ReplaceRequestBuilder<T>
      replaceRequest​(URI uri, T resource)
      Build a request to modify a SCIM resource by replacing the resource's attributes at the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      ReplaceRequestBuilder<T>
      replaceRequest​(T resource)
      Build a request to modify a SCIM resource by replacing the resource's attributes at the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      retrieve​(String endpoint, String id, Class<T> cls)
      Retrieve a known SCIM resource from the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      retrieve​(URI url, Class<T> cls)
      Retrieve a known SCIM resource from the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      T
      retrieve​(T resource)
      Retrieve a known SCIM resource from the service provider.
      RetrieveRequestBuilder.Typed retrieveRequest​(String endpoint, String id)
      Build a request to retrieve a known SCIM resource from the service provider.
      RetrieveRequestBuilder.Typed retrieveRequest​(URI url)
      Build a request to retrieve a known SCIM resource from the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      RetrieveRequestBuilder.Generic<T>
      retrieveRequest​(T resource)
      Build a request to retrieve a known SCIM resource from the service provider.
      <T extends com.unboundid.scim2.common.ScimResource>
      com.unboundid.scim2.common.messages.ListResponse<T>
      search​(String endpoint, String filter, Class<T> clazz)
      Search for SCIM resources matching the SCIM filter provided.
      SearchRequestBuilder searchRequest​(String endpoint)
      Build a request to query and retrieve resources of a single resource type from the service provider.
    • Field Detail

      • ME_URI

        public static final URI ME_URI
        The authenticated subject alias.
      • MEDIA_TYPE_SCIM_TYPE

        public static final javax.ws.rs.core.MediaType MEDIA_TYPE_SCIM_TYPE
        The SCIM media type.
    • Constructor Detail

      • ScimService

        public ScimService​(javax.ws.rs.client.WebTarget baseTarget)
        Create a new client instance to the SCIM 2 service provider at the provided WebTarget. The path of the WebTarget should be the base URI SCIM 2 service (ie. http://host/scim/v2).
        Parameters:
        baseTarget - The web target for the base URI of the SCIM 2 service provider.
    • Method Detail

      • getServiceProviderConfig

        public com.unboundid.scim2.common.types.ServiceProviderConfigResource getServiceProviderConfig()
                                                                                                throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve the service provider configuration.
        Specified by:
        getServiceProviderConfig in interface ScimInterface
        Returns:
        the service provider configuration.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • getResourceTypes

        public com.unboundid.scim2.common.messages.ListResponse<com.unboundid.scim2.common.types.ResourceTypeResource> getResourceTypes()
                                                                                                                                 throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve the resource types supported by the service provider.
        Specified by:
        getResourceTypes in interface ScimInterface
        Returns:
        The list of resource types supported by the service provider.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • getResourceType

        public com.unboundid.scim2.common.types.ResourceTypeResource getResourceType​(String name)
                                                                              throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve a known resource type supported by the service provider.
        Specified by:
        getResourceType in interface ScimInterface
        Parameters:
        name - The name of the resource type.
        Returns:
        The resource type with the provided name.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • getSchemas

        public com.unboundid.scim2.common.messages.ListResponse<com.unboundid.scim2.common.types.SchemaResource> getSchemas()
                                                                                                                     throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve the schemas supported by the service provider.
        Specified by:
        getSchemas in interface ScimInterface
        Returns:
        The list of schemas supported by the service provider.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • getSchema

        public com.unboundid.scim2.common.types.SchemaResource getSchema​(String id)
                                                                  throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve a known schema supported by the service provider.
        Specified by:
        getSchema in interface ScimInterface
        Parameters:
        id - The schema URN.
        Returns:
        The resource type with the provided URN.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • create

        public <T extends com.unboundid.scim2.common.ScimResource> T create​(String endpoint,
                                                                            T resource)
                                                                     throws com.unboundid.scim2.common.exceptions.ScimException
        Create the provided new SCIM resource at the service provider.
        Specified by:
        create in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        resource - The new resource to create.
        Returns:
        The successfully create SCIM resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • retrieve

        public <T extends com.unboundid.scim2.common.ScimResource> T retrieve​(String endpoint,
                                                                              String id,
                                                                              Class<T> cls)
                                                                       throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve a known SCIM resource from the service provider.
        Specified by:
        retrieve in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        id - The resource identifier (for example the value of the "id" attribute).
        cls - The Java class object used to determine the type to return.
        Returns:
        The successfully retrieved SCIM resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • retrieve

        public <T extends com.unboundid.scim2.common.ScimResource> T retrieve​(URI url,
                                                                              Class<T> cls)
                                                                       throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve a known SCIM resource from the service provider.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        url - The URL of the resource to retrieve.
        cls - The Java class object used to determine the type to return.
        Returns:
        The successfully retrieved SCIM resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • retrieve

        public <T extends com.unboundid.scim2.common.ScimResource> T retrieve​(T resource)
                                                                       throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieve a known SCIM resource from the service provider. If the service provider supports resource versioning and the resource has not been modified, the provided resource will be returned.
        Specified by:
        retrieve in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The resource to retrieve.
        Returns:
        The successfully retrieved SCIM resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • replace

        public <T extends com.unboundid.scim2.common.ScimResource> T replace​(T resource)
                                                                      throws com.unboundid.scim2.common.exceptions.ScimException
        Modify a SCIM resource by replacing the resource's attributes at the service provider. If the service provider supports resource versioning, the resource will only be modified if it has not been modified since it was retrieved.
        Specified by:
        replace in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The previously retrieved and revised resource.
        Returns:
        The successfully replaced SCIM resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • delete

        public void delete​(String endpoint,
                           String id)
                    throws com.unboundid.scim2.common.exceptions.ScimException
        Delete a SCIM resource at the service provider.
        Specified by:
        delete in interface ScimInterface
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        id - The resource identifier (for example the value of the "id" attribute).
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • delete

        public void delete​(URI url)
                    throws com.unboundid.scim2.common.exceptions.ScimException
        Delete a SCIM resource at the service provider.
        Parameters:
        url - The URL of the resource to delete.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • delete

        public <T extends com.unboundid.scim2.common.ScimResource> void delete​(T resource)
                                                                        throws com.unboundid.scim2.common.exceptions.ScimException
        Delete a SCIM resource at the service provider.
        Specified by:
        delete in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The resource to delete.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • createRequest

        public <T extends com.unboundid.scim2.common.ScimResource> CreateRequestBuilder<T> createRequest​(String endpoint,
                                                                                                         T resource)
        Build a request to create the provided new SCIM resource at the service provider.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        resource - The new resource to create.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • retrieveRequest

        public RetrieveRequestBuilder.Typed retrieveRequest​(String endpoint,
                                                            String id)
        Build a request to retrieve a known SCIM resource from the service provider.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        id - The resource identifier (for example the value of the "id" attribute).
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • retrieveRequest

        public RetrieveRequestBuilder.Typed retrieveRequest​(URI url)
        Build a request to retrieve a known SCIM resource from the service provider.
        Parameters:
        url - The URL of the resource to retrieve.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • retrieveRequest

        public <T extends com.unboundid.scim2.common.ScimResource> RetrieveRequestBuilder.Generic<T> retrieveRequest​(T resource)
        Build a request to retrieve a known SCIM resource from the service provider.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The resource to retrieve.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • searchRequest

        public SearchRequestBuilder searchRequest​(String endpoint)
        Build a request to query and retrieve resources of a single resource type from the service provider.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • replaceRequest

        public <T extends com.unboundid.scim2.common.ScimResource> ReplaceRequestBuilder<T> replaceRequest​(URI uri,
                                                                                                           T resource)
        Build a request to modify a SCIM resource by replacing the resource's attributes at the service provider.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        uri - The URL of the resource to modify.
        resource - The resource to replace.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • replaceRequest

        public <T extends com.unboundid.scim2.common.ScimResource> ReplaceRequestBuilder<T> replaceRequest​(T resource)
        Build a request to modify a SCIM resource by replacing the resource's attributes at the service provider.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The previously retrieved and revised resource.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • modify

        public <T extends com.unboundid.scim2.common.ScimResource> T modify​(String endpoint,
                                                                            String id,
                                                                            com.unboundid.scim2.common.messages.PatchRequest patchRequest,
                                                                            Class<T> clazz)
                                                                     throws com.unboundid.scim2.common.exceptions.ScimException
        Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values. The service provider configuration maybe used to discover service provider support for PATCH.
        Specified by:
        modify in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        id - The resource identifier (for example the value of the "id" attribute).
        patchRequest - the patch request to use for the update.
        clazz - the class of the SCIM resource.
        Returns:
        The modified resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • modifyRequest

        public ModifyRequestBuilder.Typed modifyRequest​(String endpoint,
                                                        String id)
        Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values. The service provider configuration maybe used to discover service provider support for PATCH.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        id - The resource identifier (for example the value of the "id" attribute).
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • modifyRequest

        public ModifyRequestBuilder.Typed modifyRequest​(URI url)
        Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values. The service provider configuration maybe used to discover service provider support for PATCH.
        Parameters:
        url - The URL of the resource to modify.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • modify

        public <T extends com.unboundid.scim2.common.ScimResource> T modify​(T resource,
                                                                            com.unboundid.scim2.common.messages.PatchRequest patchRequest)
                                                                     throws com.unboundid.scim2.common.exceptions.ScimException
        Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values. The service provider configuration maybe used to discover service provider support for PATCH.
        Specified by:
        modify in interface ScimInterface
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The resource to modify.
        patchRequest - the patch request to use for the update.
        Returns:
        The modified resource.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • modifyRequest

        public <T extends com.unboundid.scim2.common.ScimResource> ModifyRequestBuilder.Generic<T> modifyRequest​(T resource)
        Modify a SCIM resource by updating one or more attributes using a sequence of operations to "add", "remove", or "replace" values. The service provider configuration maybe used to discover service provider support for PATCH.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The resource to modify.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
      • deleteRequest

        public DeleteRequestBuilder deleteRequest​(String endpoint,
                                                  String id)
                                           throws com.unboundid.scim2.common.exceptions.ScimException
        Build a request to delete a SCIM resource at the service provider.
        Parameters:
        endpoint - The resource endpoint such as: "Users" or "Groups" as defined by the associated resource type.
        id - The resource identifier (for example the value of the "id" attribute).
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • deleteRequest

        public DeleteRequestBuilder deleteRequest​(URI url)
                                           throws com.unboundid.scim2.common.exceptions.ScimException
        Build a request to delete a SCIM resource at the service provider.
        Parameters:
        url - The URL of the resource to delete.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • deleteRequest

        public <T extends com.unboundid.scim2.common.ScimResource> DeleteRequestBuilder deleteRequest​(T resource)
                                                                                               throws com.unboundid.scim2.common.exceptions.ScimException
        Build a request to delete a SCIM resource at the service provider.
        Type Parameters:
        T - The Java type of the resource.
        Parameters:
        resource - The resource to delete.
        Returns:
        The request builder that may be used to specify additional request parameters and to invoke the request.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.
      • search

        public <T extends com.unboundid.scim2.common.ScimResource> com.unboundid.scim2.common.messages.ListResponse<T> search​(String endpoint,
                                                                                                                              String filter,
                                                                                                                              Class<T> clazz)
                                                                                                                       throws com.unboundid.scim2.common.exceptions.ScimException
        Search for SCIM resources matching the SCIM filter provided.
        Specified by:
        search in interface ScimInterface
        Type Parameters:
        T - The SCIM resource type to return a list of.
        Parameters:
        endpoint - a SCIM resource type endpoint.
        filter - a SCIM filter string.
        clazz - the class representing the type of the SCIM resource.
        Returns:
        a List of ScimResource objects matching the provided filter.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - if an error occurs.