class PodDeletionGcController extends BaseGcController<V1Pod> {

    @VisibleForTesting
    boolean isPodPastDeletionTimestamp(V1Pod pod) {
        V1PodSpec spec = pod.getSpec();
        V1ObjectMeta metadata = pod.getMetadata();
        if (spec == null || metadata == null) {
            return false;
        }

        Long terminationGracePeriodSeconds = spec.getTerminationGracePeriodSeconds();
        DateTime deletionTimestamp = metadata.getDeletionTimestamp();
        if (terminationGracePeriodSeconds == null || deletionTimestamp == null) {
            return false;
        }

        long terminationGracePeriodMs = terminationGracePeriodSeconds * 1000L;
        return clock.isPast(deletionTimestamp.getMillis() + terminationGracePeriodMs
                + kubeControllerConfiguration.getPodsPastTerminationGracePeriodMs());
    }

    @Inject public  PodDeletionGcController(
            TitusRuntime titusRuntime,
            LocalScheduler scheduler,
            @Named(POD_DELETION_GC_CONTROLLER) FixedIntervalTokenBucketConfiguration tokenBucketConfiguration,
            @Named(POD_DELETION_GC_CONTROLLER) ControllerConfiguration controllerConfiguration,
            KubeApiFacade kubeApiFacade,
            KubeControllerConfiguration kubeControllerConfiguration
    );

}