def METHOD_NAME(
    type_signature: computation_types.Type,
) -> bool:
  """Determines if `type_signature` contains only server-placed data.
  Determines if `type_signature` contains only:
  * `tff.StructType`s
  * `tff.SequenceType`s
  * server-placed `tff.FederatedType`s
  * `tff.TensorType`s
  Args:
      type_signature: The `tff.Type` to test.
  Returns:
    `True` if `type_signature` contains only server-placed data, otherwise
    `False`.
  """
  py_typecheck.check_type(type_signature, computation_types.Type)
  def predicate(type_spec: computation_types.Type) -> bool:
    return isinstance(
        type_spec,
        (
            computation_types.StructType,
            computation_types.SequenceType,
            computation_types.TensorType,
        ),
    ) or (
        isinstance(type_spec, computation_types.FederatedType)
        and type_spec.placement is placements.SERVER
    )
  return type_analysis.contains_only(type_signature, predicate)