"""Connector: Abstract Base Class for pulling/refreshing AWS Service metadata"""
from abc import ABC, abstractmethod

import logging

# SageWorks Imports
from sageworks.utils.logging import logging_setup

# Set up logging
logging_setup()


class Connector(ABC):
    def __init__(self):
        """Connector: Abstract Base Class for pulling/refreshing AWS Service metadata"""
        self.log = logging.getLogger(__name__)

    @abstractmethod
    def check(self) -> bool:
        """Can we connect to this service?"""
        pass

    @abstractmethod
    def refresh(self) -> bool:
        """Refresh data/metadata associated with this service"""
        pass

    @abstractmethod
    def metadata(self) -> dict:
        """Return all the metadata for this service"""
        pass
