code: def _parse_resource_reference(cls, ref_value):
          
          no_result = (None, None)
  
          if not isinstance(ref_value, string_types):
              return no_result
  
          splits = ref_value.split(cls._resource_ref_separator, 1)
  
          # Either there is no 'dot' (or) one of the values is empty string (Ex: when you split "LogicalId.")
          if len(splits) != 2 or not all(splits):
              return no_result
  
          return splits[0], splits[1]
docs: Splits a resource reference of structure "LogicalId.Property" and returns the "LogicalId" and "Property"
          separately.
  
          :param string ref_value: Input reference value which *may* contain the structure "LogicalId.Property"
          :return string, string: Returns two values - logical_id, property. If the input does not contain the structure,
              then both `logical_id` and property will be None