def ciscoEtdConnector(last_timestamp_utc, next_timestamp_utc):
    """
    Entry point of the code, responsible for fetching ETD messages and post it to Microsoft Sentinel
    """
    # Check if env variables are configured
    if not setAndValidateEnvConfigurations():
        return
    # Create Sentinel class object
    sentinelObj = Sentinel()
    # Create ETD class object
    etdObj = ETD(APIKEY, CLIENTID, CLIENTSECRET, VERDICTS, REGION, last_timestamp_utc, next_timestamp_utc)
    nextPageToken = None
    #Generate Token for ETD api
    if not etdObj.generateToken():
        logging.error("Error in generating token for etd message search")          
        return
    while True:
        # Fetch messages from ETD
        etdMessages = etdObj.fetchMessage(nextPageToken)
        #  Check for pageToken in retrieved messages
        nextPageToken = etdMessages.get("nextPageToken")
        if not etdMessages.get("data") or not nextPageToken:
            break
        # Posting ETD messages to Sentinel
        sentinelObj.sendMessagesToSentinel(etdMessages)

    Entry point of the code, responsible for fetching ETD messages and post it to Microsoft Sentinel
    
Solutions/Cisco ETD/Data Connectors/CiscoETDAzureSentinelConnector/__init__.py