code: def _validate_fg_lineage_resources(
      feature_group_name: str, sagemaker_session: Session
  ) -> None:
      """Validate existence of feature group lineage resources.
  
      Args:
          feature_group_name (str): The name or arn of the feature group.
          sagemaker_session (Session): Session object which manages interactions
              with Amazon SageMaker APIs and any other AWS services needed.
  
      Raises (ValueError): raises ValueError when lineage resources are not created for feature
          groups.
      """
  
      feature_group = sagemaker_session.describe_feature_group(
          feature_group_name=feature_group_name
      )
      feature_group_creation_time = feature_group[
          "CreationTime"
      ].strftime("%s")
      feature_group_context = _get_feature_group_lineage_context_name(
          feature_group_name=feature_group_name,
          feature_group_creation_time=feature_group_creation_time,
      )
      feature_group_pipeline_context = (
          _get_feature_group_pipeline_lineage_context_name(
              feature_group_name=feature_group_name,
              feature_group_creation_time=feature_group_creation_time,
          )
      )
      feature_group_pipeline_version_context = (
          _get_feature_group_pipeline_version_lineage_context_name(
              feature_group_name=feature_group_name,
              feature_group_creation_time=feature_group_creation_time,
          )
      )
      for context_name in [
          feature_group_context,
          feature_group_pipeline_context,
          feature_group_pipeline_version_context,
      ]:
          try:
              logger.info(
                  "Verifying existence of context %s.", context_name
              )
              context.Context.load(
                  context_name=context_name,
                  sagemaker_session=sagemaker_session,
              )
          except ClientError as e:
              if RESOURCE_NOT_FOUND == e.response["Error"]["Code"]:
                  raise ValueError(
                      f"Lineage resource {context_name} has not yet been created for feature group"
                      f" {feature_group_name} or has already been deleted. Please try again later."
                  )
              raise e
  
imports: from __future__ import absolute_import
  import logging
  import json
  import re
  from datetime import datetime
  from typing import Callable, List, Optional, Dict, Sequence, Union, Any, Tuple
  import pytz
  from botocore.exceptions import ClientError
  from sagemaker.feature_store.feature_processor._config_uploader import ConfigUploader
  from sagemaker.feature_store.feature_processor._enums import FeatureProcessorMode
  from sagemaker.feature_store.feature_processor._event_bridge_rule_helper import EventBridgeRuleHelper
  from sagemaker.feature_store.feature_processor._feature_processor_pipeline_events import FeatureProcessorPipelineEvents
  from sagemaker.feature_store.feature_processor.lineage._feature_processor_lineage_name_helper import _get_feature_group_lineage_context_name, _get_feature_group_pipeline_lineage_context_name, _get_feature_group_pipeline_version_lineage_context_name, _get_feature_processor_pipeline_lineage_context_name, _get_feature_processor_pipeline_version_lineage_context_name
  from sagemaker.lineage import context
  from sagemaker.lineage._utils import get_resource_name_from_arn
  from sagemaker.remote_function.runtime_environment.runtime_environment_manager import RuntimeEnvironmentManager
  from sagemaker.remote_function.spark_config import SparkConfig
  from sagemaker.vpc_utils import SUBNETS_KEY, SECURITY_GROUP_IDS_KEY
  from sagemaker.feature_store.feature_processor._constants import EXECUTION_TIME_PIPELINE_PARAMETER, EXECUTION_TIME_PIPELINE_PARAMETER_FORMAT, RESOURCE_NOT_FOUND_EXCEPTION, SPARK_JAR_FILES_PATH, SPARK_PY_FILES_PATH, SPARK_FILES_PATH, FEATURE_PROCESSOR_TAG_KEY, FEATURE_PROCESSOR_TAG_VALUE, PIPELINE_CONTEXT_TYPE, DEFAULT_SCHEDULE_STATE, SCHEDULED_TIME_PIPELINE_PARAMETER, PIPELINE_CONTEXT_NAME_TAG_KEY, PIPELINE_VERSION_CONTEXT_NAME_TAG_KEY, PIPELINE_NAME_MAXIMUM_LENGTH, RESOURCE_NOT_FOUND, FEATURE_GROUP_ARN_REGEX_PATTERN, TO_PIPELINE_RESERVED_TAG_KEYS, DEFAULT_TRIGGER_STATE, EVENTBRIDGE_RULE_ARN_REGEX_PATTERN
  from sagemaker.feature_store.feature_processor._feature_processor_config import FeatureProcessorConfig
  from sagemaker.s3 import s3_path_join
  from sagemaker import Session, get_execution_role
  from sagemaker.feature_store.feature_processor._event_bridge_scheduler_helper import EventBridgeSchedulerHelper
  from sagemaker.workflow.pipeline import Pipeline
  from sagemaker.workflow.retry import StepRetryPolicy, StepExceptionTypeEnum, SageMakerJobStepRetryPolicy, SageMakerJobExceptionTypeEnum
  from sagemaker.workflow.steps import TrainingStep
  from sagemaker.estimator import Estimator
  from sagemaker.feature_store.feature_processor.lineage._feature_processor_lineage import FeatureProcessorLineageHandler, TransformationCode
  from sagemaker.remote_function.job import _JobSettings, JOBS_CONTAINER_ENTRYPOINT, SPARK_APP_SCRIPT_PATH
  from sagemaker.feature_store.feature_processor._data_source import CSVDataSource, FeatureGroupDataSource, ParquetDataSource
label_desc: Use image node_id 14 for calling a global function with example usage: _validate_fg_lineage_resources(feature_group_name, sagemaker_session) without return types