code: def _annotate_cluster_compute(
      self,
      cluster_compute: Dict[str, Any],
      cloud_provider: str,
      extra_tags: Dict[str, str],
  ) -> Dict[str, Any]:
      if not extra_tags or cloud_provider != "AWS":
          return cluster_compute
  
      cluster_compute = cluster_compute.copy()
      aws = cluster_compute.get("aws", {})
      cluster_compute["aws"] = add_tags_to_aws_config(
          aws,
          extra_tags,
          RELEASE_AWS_RESOURCE_TYPES_TO_TRACK_FOR_BILLING,
      )
      return cluster_compute
  
imports: import abc
  import time
  from typing import TYPE_CHECKING, Any, Dict, Optional
  from ray_release.aws import add_tags_to_aws_config, RELEASE_AWS_RESOURCE_TYPES_TO_TRACK_FOR_BILLING
  from ray_release.anyscale_util import get_project_name
  from ray_release.config import DEFAULT_AUTOSUSPEND_MINS, DEFAULT_MAXIMUM_UPTIME_MINS
  from ray_release.test import Test
  from ray_release.exception import CloudInfoError
  from ray_release.util import anyscale_cluster_url, dict_hash, get_anyscale_sdk
  from ray_release.logger import logger
label_desc: Use image node_id 5 for calling the ClusterManager obj's underlying member method code with example usage: obj._annotate_cluster_compute(cluster_compute, cloud_provider, extra_tags) and returns: cluster_compute, cluster_compute