def METHOD_NAME(
    self, bundle_filepath: Path | None, entity_type: ObjectType, view_kwargs: dict | None = None
):
    if bundle_filepath is not None:
        bundle = self.upload_and_load_bundle(path=bundle_filepath)
    if view_kwargs is None:
        view_kwargs = {}
    match entity_type:
        case ObjectType.CLUSTER:
            viewname = "v1:cluster"
            data = {
                "prototype_id": Prototype.objects.get(type=ObjectType.CLUSTER).pk,
                "name": "Test cluster name",
                "display_name": "Test cluster display_name",
                "bundle_id": bundle.pk,
            }
        case ObjectType.PROVIDER:
            viewname = "v1:provider"
            data = {
                "prototype_id": Prototype.objects.get(type=ObjectType.PROVIDER).pk,
                "name": "Test provider name",
                "display_name": "Test provider display_name",
                "bundle_id": bundle.pk,
            }
        case ObjectType.SERVICE:
            viewname = "v1:service"
            data = {"prototype_id": Prototype.objects.get(type=ObjectType.SERVICE).pk}
    response: Response = self.client.post(
        path=reverse(viewname=viewname, kwargs=view_kwargs),
        data=data,
        content_type=APPLICATION_JSON,
    )
    self.assertEqual(response.status_code, HTTP_201_CREATED)
    return response.json()["id"]