class_docstr: `NotebookJobStep` for SageMaker Pipelines Workflows.
  
  For more details about SageMaker Notebook Jobs, see `SageMaker Notebook Jobs
  <https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run.html>`_.
class_docstr_tok: ["`","NotebookJobStep","`","for","SageMaker","Pipelines","Workflows",".","For","more","details","about","SageMaker","Notebook","Jobs",",","see","`","SageMaker","Notebook","Jobs","<","https",":","\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/notebook-auto-run.html",">","`","_","."]
docstr: Validation function for the notebook job step inputs.
docstr_tok: ["Validation","function","for","the","notebook","job","step","inputs","."]
code: def _validate_inputs(self):
      """Validation function for the notebook job step inputs."""
  
      errors = []
      # notebook job name should start with letters and contain only letters, numbers, hyphens,
      # and underscores
      if not self.notebook_job_name or not bool(
          re.match(r"^[a-zA-Z][a-zA-Z0-9_-]*$", self.notebook_job_name)
      ):
          errors.append(
              f"Notebook Job Name({self.notebook_job_name}) is not valid. Valid name "
              f"should start with letters and contain only letters, numbers, hyphens, "
              f"and underscores."
          )
  
      # input notebook is required
      if not self.input_notebook or not os.path.isfile(
          self.input_notebook
      ):
          errors.append(
              f"The required input notebook({self.input_notebook}) is not a valid "
              f"file."
          )
  
      # init script is optional
      if self.initialization_script and not os.path.isfile(
          self.initialization_script
      ):
          errors.append(
              f"The initialization script({self.input_notebook}) is not a valid file."
          )
  
      if self.additional_dependencies:
          for path in self.additional_dependencies:
              if not os.path.exists(path):
                  errors.append(
                      f"The path({path}) specified in additional dependencies does not exist."
                  )
      # image uri is required
      if (
          not self.image_uri
          or self._region_from_session not in self.image_uri
      ):
          errors.append(
              f"The image uri(specified as {self.image_uri}) is required and "
              f"should be hosted in same region of the session"
              f"({self._region_from_session})."
          )
  
      if not self.kernel_name:
          errors.append("The kernel name is required.")
  
      # validate the role after resolving.
      if not self.role:
          errors.append(
              f"The IAM role is '{self.role}' and no default role can be found."
          )
  
      # validate the s3 root uri after resolving
      if not self.s3_root_uri:
          errors.append(
              f"The s3_root_uri is '{self.s3_root_uri}' and no default s3_root_uri can"
              f" be found."
          )
  
      if errors:
          errors_message = "\n  - ".join(errors)
          raise ValueError(f"Validation Errors: \n  - {errors_message}")
  
imports: from __future__ import absolute_import
  import re
  import shutil
  import os
  from typing import List, Optional, Union, Dict
  from sagemaker.workflow.execution_variables import ExecutionVariables
  from sagemaker.workflow.functions import Join
  from sagemaker.workflow.properties import Properties
  from sagemaker.workflow.retry import RetryPolicy
  from sagemaker.workflow.steps import Step, ConfigurableRetryStep, StepTypeEnum
  from sagemaker.workflow.step_collections import StepCollection
  from sagemaker.workflow.step_outputs import StepOutput
  from sagemaker.workflow.entities import RequestType, PipelineVariable
  from sagemaker.workflow.utilities import _collect_parameters, load_step_compilation_context
  from sagemaker.session import get_execution_role
  from sagemaker.s3_utils import s3_path_join
  from sagemaker.s3 import S3Uploader
  from sagemaker.utils import _tmpdir, name_from_base, resolve_value_from_config, format_tags, Tags
  from sagemaker import vpc_utils
  from sagemaker.config.config_schema import NOTEBOOK_JOB_ROLE_ARN, NOTEBOOK_JOB_S3_ROOT_URI, NOTEBOOK_JOB_S3_KMS_KEY_ID, NOTEBOOK_JOB_VOLUME_KMS_KEY_ID, NOTEBOOK_JOB_VPC_CONFIG_SUBNETS, NOTEBOOK_JOB_VPC_CONFIG_SECURITY_GROUP_IDS
label_desc: Use image node_id 2 for calling the NotebookJobStep obj's underlying member method code with example usage: obj._validate_inputs() without return types