class_docstr: Hook for Google Compute Engine APIs.
  
  All the methods in the hook where project_id is used must be called with
  keyword arguments rather than positional.
code: def _execute_set_machine_type(
      self, zone: str, resource_id: str, body: dict, project_id: str
  ) -> dict:
      return (
          self.get_conn()
          .instances()
          .setMachineType(
              project=project_id,
              zone=zone,
              instance=resource_id,
              body=body,
          )
          .execute(num_retries=self.num_retries)
      )
  
imports: from __future__ import annotations
  import time
  from typing import TYPE_CHECKING, Any, Sequence
  from google.cloud.compute_v1.services.instance_group_managers import InstanceGroupManagersClient
  from google.cloud.compute_v1.services.instance_templates import InstanceTemplatesClient
  from google.cloud.compute_v1.services.instances import InstancesClient
  from googleapiclient.discovery import build
  from airflow.exceptions import AirflowException
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
label_desc: Use image node_id 15 for calling the ComputeEngineHook obj's underlying member method code with example usage: obj._execute_set_machine_type(zone, resource_id, body, project_id) and returns: self