def METHOD_NAME(self, request: Request, project, bundle_id) -> Response:
    """
    List files for a given project artifact bundle.
    ``````````````````````````````
    Retrieve a list of files for a given artifact bundle.
    :pparam string organization_slug: the slug of the organization the
                                      artifact bundle belongs to.
    :pparam string project_slug: the slug of the project the
                                 artifact bundle belongs to.
    :pparam string bundle_id: bundle_id of the artifact bundle to list files from.
    """
    query = request.GET.METHOD_NAME("query")
    try:
        artifact_bundle = ArtifactBundle.objects.filter(
            organization_id=project.organization.id,
            bundle_id=bundle_id,
            projectartifactbundle__project_id=project.id,
        )[0]
    except IndexError:
        return Response(
            {
                "error": f"The artifact bundle with {bundle_id} is not bound to this project or doesn't exist"
            },
            status=400,
        )
    try:
        # We open the archive to fetch the number of files.
        archive = ArtifactBundleArchive(artifact_bundle.file.getfile(), build_memory_map=False)
    except Exception:
        return Response(
            {"error": f"The archive of artifact bundle {bundle_id} can't be opened"}
        )
    def serialize_results(r):
        # Here we don't query with project_id under the assumption that the above's code checks for it. In case
        # the get_release_associations method is going to be used in other places, a project_id check should
        # still be performed to avoid any security problems.
        associations = ArtifactBundle.get_release_associations(
            project.organization.id, artifact_bundle
        )
        return serialize(
            {
                "bundleId": str(artifact_bundle.bundle_id),
                "associations": associations,
                "files": serialize(
                    # We need to convert the dictionary to a list in order to properly use the serializer.
                    r,
                    request.user,
                    ArtifactBundleFilesSerializer(archive),
                ),
            },
            request.user,
        )
    try:
        return self.paginate(
            request=request,
            sources=[ArtifactBundleSource(archive.get_files_by_url_or_debug_id(query))],
            paginator_cls=ChainPaginator,
            max_offset=MAX_ARTIFACT_BUNDLE_FILES_OFFSET,
            on_results=serialize_results,
        )
    except Exception as exc:
        raise exc
    finally:
        # We must close the archive before returning the value, otherwise we will get an error.
        archive.close()