class_docstr: Hook for Azure Batch APIs.
  
  :param azure_batch_conn_id: :ref:`Azure Batch connection id<howto/connection:azure_batch>`
      of a service principal which will be used to start the container instance.
class_docstr_tok: ["Hook","for","Azure","Batch","APIs",".",":","param","azure_batch_conn_id",":",":","ref",":","`","Azure","Batch","connection","id","<","howto\/connection",":","azure_batch",">","`","of","a","service","principal","which","will","be","used","to","start","the","container","instance","."]
docstr: Get latest verified image vm and sku.
  
  :param publisher: The publisher of the Azure Virtual Machines Marketplace Image.
      For example, Canonical or MicrosoftWindowsServer.
  :param offer: The offer type of the Azure Virtual Machines Marketplace Image.
      For example, UbuntuServer or WindowsServer.
  :param sku_starts_with: The start name of the sku to search
docstr_tok: ["Get","latest","verified","image","vm","and","sku",".",":","param","publisher",":","The","publisher","of","the","Azure","Virtual","Machines","Marketplace","Image",".","For","example",",","Canonical","or","MicrosoftWindowsServer",".",":","param","offer",":","The","offer","type","of","the","Azure","Virtual","Machines","Marketplace","Image",".","For","example",",","UbuntuServer","or","WindowsServer",".",":","param","sku_starts_with",":","The","start","name","of","the","sku","to","search"]
code: def _get_latest_verified_image_vm_and_sku(
      self,
      publisher: str | None = None,
      offer: str | None = None,
      sku_starts_with: str | None = None,
  ) -> tuple:
      """
      Get latest verified image vm and sku.
  
      :param publisher: The publisher of the Azure Virtual Machines Marketplace Image.
          For example, Canonical or MicrosoftWindowsServer.
      :param offer: The offer type of the Azure Virtual Machines Marketplace Image.
          For example, UbuntuServer or WindowsServer.
      :param sku_starts_with: The start name of the sku to search
      """
      options = batch_models.AccountListSupportedImagesOptions(
          filter="verificationType eq 'verified'"
      )
      images = self.connection.account.list_supported_images(
          account_list_supported_images_options=options
      )
      # pick the latest supported sku
      skus_to_use = [
          (image.node_agent_sku_id, image.image_reference)
          for image in images
          if image.image_reference.publisher.lower() == publisher
          and image.image_reference.offer.lower() == offer
          and image.image_reference.sku.startswith(sku_starts_with)
      ]
  
      # pick first
      agent_sku_id, image_ref_to_use = skus_to_use[0]
      return agent_sku_id, image_ref_to_use
  
imports: from __future__ import annotations
  import time
  from datetime import timedelta
  from functools import cached_property
  from typing import TYPE_CHECKING, Any
  from azure.batch import BatchServiceClient, batch_auth, models
  from airflow.exceptions import AirflowException
  from airflow.hooks.base import BaseHook
  from airflow.providers.microsoft.azure.utils import AzureIdentityCredentialAdapter, add_managed_identity_connection_widgets, get_field
  from airflow.utils import timezone
label_desc: Use image node_id 9 for calling the AzureBatchHook obj's underlying member method code with example usage: obj._get_latest_verified_image_vm_and_sku(publisher, offer, sku_starts_with) and returns: agent_sku_id,  image_ref_to_use