<?php

namespace Drupal\user_provisioning\ProviderSpecific\EntityHandler;

/**
 * Defines operations for provisioning user entities to providers.
 */
interface moUserProvisioningEntityHandlerInterface {

  /**
   * Search the resource at the configured application.
   *
   * @return array
   *   The response received from the configured application.
   */
  public function searchResource(): array;

  /**
   * Creates the resource at the configured application.
   *
   * @return mixed
   *   The response returned by the provider.
   */
  public function createResource();

  /**
   * Updates the resource at the configured application.
   *
   * @return mixed
   *   The response returned by the provider.
   */
  public function updateResource();

  /**
   * Delete the resource at the configured application.
   *
   * @return mixed
   *   The response returned by the provider.
   */
  public function deleteResource();

  /**
   * Delete the resource at the configured application.
   *
   * @return mixed
   *   The response returned by the provider.
   */
  public function deactivateResource();

}
