code: def __init__(
      self,
      name,
      input_data=None,
      display_name=None,
      description=None,
      depends_on=None,
      retry_policies=None,
  ):
      self.input_data = input_data
      super(CustomStep, self).__init__(
          name,
          StepTypeEnum.TRAINING,
          display_name,
          description,
          depends_on,
          retry_policies,
      )
      # for testing property reference, we just use DescribeTrainingJobResponse shape here.
      self._properties = Properties(
          name, step=self, shape_name="DescribeTrainingJobResponse"
      )
  
imports: from __future__ import absolute_import
  from typing import List, Optional, Union, Callable
  from sagemaker.utils import base_from_name
  from sagemaker.workflow.properties import Properties
  from sagemaker.workflow.retry import RetryPolicy
  from sagemaker.workflow.step_outputs import StepOutput
  from sagemaker.workflow.steps import ConfigurableRetryStep, Step, StepTypeEnum, CacheConfig
  from sagemaker.workflow.step_collections import StepCollection
  from sagemaker.workflow.utilities import execute_job_functions
  from sagemaker.workflow.entities import RequestType
  from sagemaker.remote_function.job import _JobSettings
label_desc: Use image node_id 1 to create a new CustomStep object from inherited base classes: ConfigurableRetryStep with example: obj = CustomStep(name, input_data, display_name, description, depends_on, retry_policies)