code: def _unique_resource_identifier_from_kwargs(**kwargs):
      
      name = kwargs.pop('name', '')
      uuid = kwargs.pop('uuid', '')
      id = kwargs.pop('id', '')
      if uuid:
          return uuid, kwargs
      elif id:
          # Used for /mgmt/cm/system/authn/providers/tmos on BIG-IP
          return id, kwargs
      else:
          return name, kwargs
docs: Chooses an identifier given different choices
  
      The unique identifier in BIG-IP's REST API at the time of this writing
      is called 'name'. This is in contrast to the unique identifier that is
      used by iWorkflow and BIG-IQ which at some times is 'name' and other
      times is 'uuid'.
  
      For example, in iWorkflow, there consider this URI
  
        * https://10.2.2.3/mgmt/cm/cloud/tenants/{0}/services/iapp
  
      Then consider this iWorkflow URI
  
        * https://localhost/mgmt/cm/cloud/connectors/local/{0}
  
      In the first example, the identifier, {0}, is what we would normally
      consider a name. For example, "tenant1". In the second example though,
      the value is expected to be what we would normally consider to be a
      UUID. For example, '244bd478-374e-4eb2-8c73-6e46d7112604'.
  
      This method only tries to rectify the problem of which to use.
  
      I believe there might be some change that the two can appear together,
      although I have not yet experienced it. If it is possible, I believe it
      would happen in BIG-IQ/iWorkflow land where the UUID and Name both have
      significance. That's why I deliberately prefer the UUID when it exists
      in the parameters sent to the URL.
  
      :param kwargs:
      :return: