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: Constructs a `NotebookJobStep`.
  
  Args:
      name (Optional[str]): The name of the `NotebookJobStep`. If not provided,
         it is derived from the notebook file name.
      display_name (Optional[str]): The display name of the `NotebookJobStep`.
         Default is ``None``.
      description (Optional[str]): The description of the `NotebookJobStep`.
         Default is ``None``.
  
      notebook_job_name (Optional[str]): An optional user-specified descriptive name
        for the notebook job. If provided, the sanitized notebook job name
        is used as a prefix for the underlying training job. If not provided, it
        is derived from the notebook file name.
      input_notebook (str): A required local path pointing to
        the notebook that needs to be executed. The notebook file is uploaded to
        ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}`` in the job preparation
        step.
      image_uri (str): A required universal resource identifier (URI)
        location of a Docker image on Amazon Elastic Container Registry (ECR). Use the
        following images:
  
        * SageMaker Distribution Images. See `Available Amazon SageMaker Images
          <https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-images.html>`_
          to get the image ECR URIs.
        * Custom images with required dependencies installed.
          For information about notebook job image requirements, see `Image Constraints
          <https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-constraints.html#notebook-auto-run-constraints-image>`_.
  
      kernel_name (str): A required name of the kernel that is used to run
        the notebook. The kernelspec of the specified kernel needs to be registered in the
        image.
      role (str): An IAM role (either name or full ARN) used to
        run your SageMaker training job. Defaults to one of the following:
  
          * The SageMaker default IAM role if the SDK is running in SageMaker Notebooks
            or SageMaker Studio Notebooks.
          * Otherwise, a ``ValueError`` is thrown.
  
      s3_root_uri (str): The root S3 folder to which the notebook job input and output are
        uploaded. The inputs and outputs are uploaded to the following folders, respectively:
  
        ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}``
        ``{s3_root_uri}/{pipeline_name}/{execution_id}/{step_name}/{job_name}/output``
  
        Note that ``job_name`` is the name of the underlying SageMaker training job.
  
      parameters (Dict[str, Union[str, PipelineVariable]]): Key-value pairs passed to the
        notebook execution for parameterization. Defaults to ``None``.
      environment_variables (Dict[str, Union[str, PipelineVariable]]): The environment
        variables used inside the job image container. They could be existing environment
        variables that you want to override, or new environment variables that you want to
        introduce and use in your notebook. Defaults to ``None``.
      initialization_script (str): A path to a local script you can run
        when your notebook starts up. An initialization script is sourced from the same shell
        as the notebook job. This script is uploaded to
        ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}``
        in the job preparation step. Defaults to ``None``.
      s3_kms_key (str, PipelineVariable): A KMS key to use if you want to
        customize the encryption key used for your notebook job input and output. If you do
        not specify this field, your notebook job outputs are encrypted with SSE-KMS using the
        default Amazon S3 KMS key. Defaults to ``None``.
  
      instance_type (str, PipelineVariable): The Amazon Elastic Compute Cloud (EC2) instance
        type to use to run the notebook job. The notebook job uses a SageMaker Training Job
        as a computing layer, so the specified instance type should be a SageMaker Training
        supported instance type. Defaults to ``ml.m5.large``.
      volume_size (int, PipelineVariable): The size in GB of the storage volume for storing
        input and output data during training. Defaults to ``30``.
      volume_kms_key (str, PipelineVariable): An Amazon Key Management Service (KMS) key used
        to encrypt an Amazon Elastic Block Storage (EBS) volume attached to the training
        instance. Defaults to ``None``.
      encrypt_inter_container_traffic (bool, PipelineVariable): A flag that specifies whether
        traffic between training containers is encrypted for the training job. Defaults to
        ``True``.
      security_group_ids (List[str, PipelineVariable]): A list of security group IDs.
        Defaults to ``None`` and the training job is created without a VPC config.
      subnets (List[str, PipelineVariable]): A list of subnet IDs. Defaults to ``None`` and
        the job is created without a VPC config.
  
      max_retry_attempts (int): The max number of times the job is retried
        after an ``InternalServerFailure`` error configured in the underlying SageMaker
        training job. Defaults to 1.
      max_runtime_in_seconds (int): The maximum length of time, in seconds,
        that a notebook job can run before it is stopped. If you configure both the max run
        time and max retry attempts, the run time applies to each retry. If a job does not
        complete in this time, its status is set to ``Failed``. Defaults to ``172800 seconds(2
        days)``.
      tags (Optional[Tags]): Tags attached to the job. Defaults to ``None`` and the training
          job is created without tags. Your tags control how the Studio UI captures and
          displays the job created by the pipeline in the following ways:
  
        * If you only attach the domain tag, then the notebook job is displayed to all user
          profiles and spaces.
        * If the domain and user profile/space tags are attached, then the notebook job
          is displayed to those specific user profiles and spaces.
        * If you do not attach any domain or user profile/space tags, the Studio UI does
          not show the notebook job created by pipeline step. You have to use the training
          job console to view the underlying training job.
  
      additional_dependencies:(List[str]): The list of dependencies for the notebook job. The
        list contains the local files or folder paths. The dependent files or folders are
        uploaded to ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}``.
        If a path is pointing to a directory, the subfolders are uploaded recursively.
        Defaults to ``None``.
      sagemaker_session (sagemaker.session.Session): The underlying SageMaker session to
        which SageMaker service calls are delegated. Default is ``None``. If not provided,
        one is created using a default configuration chain.
  
      retry_policies (List[RetryPolicy]):  A list of retry policies for the notebook job step.
      depends_on (List[Union[Step, StepCollection, StepOutput]]): A list of `Step`/
          `StepCollection`/`StepOutput` instances on which this `NotebookJobStep` depends.
docstr_tok: ["Constructs","a","`","NotebookJobStep","`",".","Args",":","name","(","Optional","[","str","]",")",":","The","name","of","the","`","NotebookJobStep","`",".","If","not","provided",",","it","is","derived","from","the","notebook","file","name",".","display_name","(","Optional","[","str","]",")",":","The","display","name","of","the","`","NotebookJobStep","`",".","Default","is","``","None","``",".","description","(","Optional","[","str","]",")",":","The","description","of","the","`","NotebookJobStep","`",".","Default","is","``","None","``",".","notebook_job_name","(","Optional","[","str","]",")",":","An","optional","user-specified","descriptive","name","for","the","notebook","job",".","If","provided",",","the","sanitized","notebook","job","name","is","used","as","a","prefix","for","the","underlying","training","job",".","If","not","provided",",","it","is","derived","from","the","notebook","file","name",".","input_notebook","(","str",")",":","A","required","local","path","pointing","to","the","notebook","that","needs","to","be","executed",".","The","notebook","file","is","uploaded","to","``","{","s3_root_uri","}","\/","{","pipeline_name","}","\/","{","step_name","}","\/input-","{","timestamp","}","``","in","the","job","preparation","step",".","image_uri","(","str",")",":","A","required","universal","resource","identifier","(","URI",")","location","of","a","Docker","image","on","Amazon","Elastic","Container","Registry","(","ECR",")",".","Use","the","following","images",":","*","SageMaker","Distribution","Images",".","See","`","Available","Amazon","SageMaker","Images","<","https",":","\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/notebooks-available-images.html",">","`","_","to","get","the","image","ECR","URIs",".","*","Custom","images","with","required","dependencies","installed",".","For","information","about","notebook","job","image","requirements",",","see","`","Image","Constraints","<","https",":","\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/notebook-auto-run-constraints.html","#","notebook-auto-run-constraints-image",">","`","_",".","kernel_name","(","str",")",":","A","required","name","of","the","kernel","that","is","used","to","run","the","notebook",".","The","kernelspec","of","the","specified","kernel","needs","to","be","registered","in","the","image",".","role","(","str",")",":","An","IAM","role","(","either","name","or","full","ARN",")","used","to","run","your","SageMaker","training","job",".","Defaults","to","one","of","the","following",":","*","The","SageMaker","default","IAM","role","if","the","SDK","is","running","in","SageMaker","Notebooks","or","SageMaker","Studio","Notebooks",".","*","Otherwise",",","a","``","ValueError","``","is","thrown",".","s3_root_uri","(","str",")",":","The","root","S3","folder","to","which","the","notebook","job","input","and","output","are","uploaded",".","The","inputs","and","outputs","are","uploaded","to","the","following","folders",",","respectively",":","``","{","s3_root_uri","}","\/","{","pipeline_name","}","\/","{","step_name","}","\/input-","{","timestamp","}","``","``","{","s3_root_uri","}","\/","{","pipeline_name","}","\/","{","execution_id","}","\/","{","step_name","}","\/","{","job_name","}","\/output","``","Note","that","``","job_name","``","is","the","name","of","the","underlying","SageMaker","training","job",".","parameters","(","Dict","[","str",",","Union","[","str",",","PipelineVariable","]","]",")",":","Key-value","pairs","passed","to","the","notebook","execution","for","parameterization",".","Defaults","to","``","None","``",".","environment_variables","(","Dict","[","str",",","Union","[","str",",","PipelineVariable","]","]",")",":","The","environment","variables","used","inside","the","job","image","container",".","They","could","be","existing","environment","variables","that","you","want","to","override",",","or","new","environment","variables","that","you","want","to","introduce","and","use","in","your","notebook",".","Defaults","to","``","None","``",".","initialization_script","(","str",")",":","A","path","to","a","local","script","you","can","run","when","your","notebook","starts","up",".","An","initialization","script","is","sourced","from","the","same","shell","as","the","notebook","job",".","This","script","is","uploaded","to","``","{","s3_root_uri","}","\/","{","pipeline_name","}","\/","{","step_name","}","\/input-","{","timestamp","}","``","in","the","job","preparation","step",".","Defaults","to","``","None","``",".","s3_kms_key","(","str",",","PipelineVariable",")",":","A","KMS","key","to","use","if","you","want","to","customize","the","encryption","key","used","for","your","notebook","job","input","and","output",".","If","you","do","not","specify","this","field",",","your","notebook","job","outputs","are","encrypted","with","SSE-KMS","using","the","default","Amazon","S3","KMS","key",".","Defaults","to","``","None","``",".","instance_type","(","str",",","PipelineVariable",")",":","The","Amazon","Elastic","Compute","Cloud","(","EC2",")","instance","type","to","use","to","run","the","notebook","job",".","The","notebook","job","uses","a","SageMaker","Training","Job","as","a","computing","layer",",","so","the","specified","instance","type","should","be","a","SageMaker","Training","supported","instance","type",".","Defaults","to","``","ml.m5.large","``",".","volume_size","(","int",",","PipelineVariable",")",":","The","size","in","GB","of","the","storage","volume","for","storing","input","and","output","data","during","training",".","Defaults","to","``","30","``",".","volume_kms_key","(","str",",","PipelineVariable",")",":","An","Amazon","Key","Management","Service","(","KMS",")","key","used","to","encrypt","an","Amazon","Elastic","Block","Storage","(","EBS",")","volume","attached","to","the","training","instance",".","Defaults","to","``","None","``",".","encrypt_inter_container_traffic","(","bool",",","PipelineVariable",")",":","A","flag","that","specifies","whether","traffic","between","training","containers","is","encrypted","for","the","training","job",".","Defaults","to","``","True","``",".","security_group_ids","(","List","[","str",",","PipelineVariable","]",")",":","A","list","of","security","group","IDs",".","Defaults","to","``","None","``","and","the","training","job","is","created","without","a","VPC","config",".","subnets","(","List","[","str",",","PipelineVariable","]",")",":","A","list","of","subnet","IDs",".","Defaults","to","``","None","``","and","the","job","is","created","without","a","VPC","config",".","max_retry_attempts","(","int",")",":","The","max","number","of","times","the","job","is","retried","after","an","``","InternalServerFailure","``","error","configured","in","the","underlying","SageMaker","training","job",".","Defaults","to","1.","max_runtime_in_seconds","(","int",")",":","The","maximum","length","of","time",",","in","seconds",",","that","a","notebook","job","can","run","before","it","is","stopped",".","If","you","configure","both","the","max","run","time","and","max","retry","attempts",",","the","run","time","applies","to","each","retry",".","If","a","job","does","not","complete","in","this","time",",","its","status","is","set","to","``","Failed","``",".","Defaults","to","``","172800","seconds","(","2","days",")","``",".","tags","(","Optional","[","Tags","]",")",":","Tags","attached","to","the","job",".","Defaults","to","``","None","``","and","the","training","job","is","created","without","tags",".","Your","tags","control","how","the","Studio","UI","captures","and","displays","the","job","created","by","the","pipeline","in","the","following","ways",":","*","If","you","only","attach","the","domain","tag",",","then","the","notebook","job","is","displayed","to","all","user","profiles","and","spaces",".","*","If","the","domain","and","user","profile\/space","tags","are","attached",",","then","the","notebook","job","is","displayed","to","those","specific","user","profiles","and","spaces",".","*","If","you","do","not","attach","any","domain","or","user","profile\/space","tags",",","the","Studio","UI","does","not","show","the","notebook","job","created","by","pipeline","step",".","You","have","to","use","the","training","job","console","to","view","the","underlying","training","job",".","additional_dependencies",":","(","List","[","str","]",")",":","The","list","of","dependencies","for","the","notebook","job",".","The","list","contains","the","local","files","or","folder","paths",".","The","dependent","files","or","folders","are","uploaded","to","``","{","s3_root_uri","}","\/","{","pipeline_name","}","\/","{","step_name","}","\/input-","{","timestamp","}","``",".","If","a","path","is","pointing","to","a","directory",",","the","subfolders","are","uploaded","recursively",".","Defaults","to","``","None","``",".","sagemaker_session","(","sagemaker.session.Session",")",":","The","underlying","SageMaker","session","to","which","SageMaker","service","calls","are","delegated",".","Default","is","``","None","``",".","If","not","provided",",","one","is","created","using","a","default","configuration","chain",".","retry_policies","(","List","[","RetryPolicy","]",")",":","A","list","of","retry","policies","for","the","notebook","job","step",".","depends_on","(","List","[","Union","[","Step",",","StepCollection",",","StepOutput","]","]",")",":","A","list","of","`","Step","`","\/","`","StepCollection","`","\/","`","StepOutput","`","instances","on","which","this","`","NotebookJobStep","`","depends","."]
code: def __init__(
      self,
      # Following parameters will set by @collect_parameters
      # pylint: disable=W0613
      input_notebook: str,
      image_uri: str,
      kernel_name: str,
      name: Optional[str] = None,
      display_name: Optional[str] = None,
      description: Optional[str] = None,
      notebook_job_name: Optional[str] = None,
      role: Optional[str] = None,
      s3_root_uri: Optional[str] = None,
      parameters: Optional[
          Dict[str, Union[str, PipelineVariable]]
      ] = None,
      environment_variables: Optional[
          Dict[str, Union[str, PipelineVariable]]
      ] = None,
      initialization_script: Optional[str] = None,
      s3_kms_key: Optional[Union[str, PipelineVariable]] = None,
      instance_type: Optional[
          Union[str, PipelineVariable]
      ] = "ml.m5.large",
      volume_size: Union[int, PipelineVariable] = 30,
      volume_kms_key: Optional[Union[str, PipelineVariable]] = None,
      encrypt_inter_container_traffic: Optional[
          Union[bool, PipelineVariable]
      ] = True,
      security_group_ids: Optional[
          List[Union[str, PipelineVariable]]
      ] = None,
      subnets: Optional[List[Union[str, PipelineVariable]]] = None,
      max_retry_attempts: int = 1,
      max_runtime_in_seconds: int = 2 * 24 * 60 * 60,
      tags: Optional[Tags] = None,
      additional_dependencies: Optional[List[str]] = None,
      # pylint: enable=W0613
      retry_policies: Optional[List[RetryPolicy]] = None,
      depends_on: Optional[
          List[Union[Step, StepCollection, StepOutput]]
      ] = None,
  ):
      """Constructs a `NotebookJobStep`.
  
      Args:
          name (Optional[str]): The name of the `NotebookJobStep`. If not provided,
             it is derived from the notebook file name.
          display_name (Optional[str]): The display name of the `NotebookJobStep`.
             Default is ``None``.
          description (Optional[str]): The description of the `NotebookJobStep`.
             Default is ``None``.
  
          notebook_job_name (Optional[str]): An optional user-specified descriptive name
            for the notebook job. If provided, the sanitized notebook job name
            is used as a prefix for the underlying training job. If not provided, it
            is derived from the notebook file name.
          input_notebook (str): A required local path pointing to
            the notebook that needs to be executed. The notebook file is uploaded to
            ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}`` in the job preparation
            step.
          image_uri (str): A required universal resource identifier (URI)
            location of a Docker image on Amazon Elastic Container Registry (ECR). Use the
            following images:
  
            * SageMaker Distribution Images. See `Available Amazon SageMaker Images
              <https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-images.html>`_
              to get the image ECR URIs.
            * Custom images with required dependencies installed.
              For information about notebook job image requirements, see `Image Constraints
              <https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-constraints.html#notebook-auto-run-constraints-image>`_.
  
          kernel_name (str): A required name of the kernel that is used to run
            the notebook. The kernelspec of the specified kernel needs to be registered in the
            image.
          role (str): An IAM role (either name or full ARN) used to
            run your SageMaker training job. Defaults to one of the following:
  
              * The SageMaker default IAM role if the SDK is running in SageMaker Notebooks
                or SageMaker Studio Notebooks.
              * Otherwise, a ``ValueError`` is thrown.
  
          s3_root_uri (str): The root S3 folder to which the notebook job input and output are
            uploaded. The inputs and outputs are uploaded to the following folders, respectively:
  
            ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}``
            ``{s3_root_uri}/{pipeline_name}/{execution_id}/{step_name}/{job_name}/output``
  
            Note that ``job_name`` is the name of the underlying SageMaker training job.
  
          parameters (Dict[str, Union[str, PipelineVariable]]): Key-value pairs passed to the
            notebook execution for parameterization. Defaults to ``None``.
          environment_variables (Dict[str, Union[str, PipelineVariable]]): The environment
            variables used inside the job image container. They could be existing environment
            variables that you want to override, or new environment variables that you want to
            introduce and use in your notebook. Defaults to ``None``.
          initialization_script (str): A path to a local script you can run
            when your notebook starts up. An initialization script is sourced from the same shell
            as the notebook job. This script is uploaded to
            ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}``
            in the job preparation step. Defaults to ``None``.
          s3_kms_key (str, PipelineVariable): A KMS key to use if you want to
            customize the encryption key used for your notebook job input and output. If you do
            not specify this field, your notebook job outputs are encrypted with SSE-KMS using the
            default Amazon S3 KMS key. Defaults to ``None``.
  
          instance_type (str, PipelineVariable): The Amazon Elastic Compute Cloud (EC2) instance
            type to use to run the notebook job. The notebook job uses a SageMaker Training Job
            as a computing layer, so the specified instance type should be a SageMaker Training
            supported instance type. Defaults to ``ml.m5.large``.
          volume_size (int, PipelineVariable): The size in GB of the storage volume for storing
            input and output data during training. Defaults to ``30``.
          volume_kms_key (str, PipelineVariable): An Amazon Key Management Service (KMS) key used
            to encrypt an Amazon Elastic Block Storage (EBS) volume attached to the training
            instance. Defaults to ``None``.
          encrypt_inter_container_traffic (bool, PipelineVariable): A flag that specifies whether
            traffic between training containers is encrypted for the training job. Defaults to
            ``True``.
          security_group_ids (List[str, PipelineVariable]): A list of security group IDs.
            Defaults to ``None`` and the training job is created without a VPC config.
          subnets (List[str, PipelineVariable]): A list of subnet IDs. Defaults to ``None`` and
            the job is created without a VPC config.
  
          max_retry_attempts (int): The max number of times the job is retried
            after an ``InternalServerFailure`` error configured in the underlying SageMaker
            training job. Defaults to 1.
          max_runtime_in_seconds (int): The maximum length of time, in seconds,
            that a notebook job can run before it is stopped. If you configure both the max run
            time and max retry attempts, the run time applies to each retry. If a job does not
            complete in this time, its status is set to ``Failed``. Defaults to ``172800 seconds(2
            days)``.
          tags (Optional[Tags]): Tags attached to the job. Defaults to ``None`` and the training
              job is created without tags. Your tags control how the Studio UI captures and
              displays the job created by the pipeline in the following ways:
  
            * If you only attach the domain tag, then the notebook job is displayed to all user
              profiles and spaces.
            * If the domain and user profile/space tags are attached, then the notebook job
              is displayed to those specific user profiles and spaces.
            * If you do not attach any domain or user profile/space tags, the Studio UI does
              not show the notebook job created by pipeline step. You have to use the training
              job console to view the underlying training job.
  
          additional_dependencies:(List[str]): The list of dependencies for the notebook job. The
            list contains the local files or folder paths. The dependent files or folders are
            uploaded to ``{s3_root_uri}/{pipeline_name}/{step_name}/input-{timestamp}``.
            If a path is pointing to a directory, the subfolders are uploaded recursively.
            Defaults to ``None``.
          sagemaker_session (sagemaker.session.Session): The underlying SageMaker session to
            which SageMaker service calls are delegated. Default is ``None``. If not provided,
            one is created using a default configuration chain.
  
          retry_policies (List[RetryPolicy]):  A list of retry policies for the notebook job step.
          depends_on (List[Union[Step, StepCollection, StepOutput]]): A list of `Step`/
              `StepCollection`/`StepOutput` instances on which this `NotebookJobStep` depends.
      """
  
      super(NotebookJobStep, self).__init__(
          name,
          StepTypeEnum.TRAINING,
          display_name,
          description,
          depends_on,
          retry_policies,
      )
  
      # if notebook job name or step name is not passed,
      # use a name derived from notebook file name
      # Disable E0203 as input_notebook attribute is set by the decorator
      # pylint: disable=E0203
      if self.input_notebook and (
          not self.notebook_job_name or not self.name
      ):
          derived_name = name_from_base(
              self._get_job_name_prefix(
                  os.path.basename(self.input_notebook)
              )
          )
          if not self.notebook_job_name:
              self.notebook_job_name = derived_name
          if not self.name:
              self.name = derived_name
      # pylint: enable=E0203
  
      self._scheduler_container_entry_point = [
          "amazon_sagemaker_scheduler"
      ]
      self._scheduler_container_arguments = []
  
      self._properties = self._compose_properties(name)
  
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 1 to create a new NotebookJobStep object from inherited base classes: ConfigurableRetryStep with example: obj = NotebookJobStep(input_notebook, image_uri, kernel_name, name, display_name, description, notebook_job_name, role, s3_root_uri, parameters, environment_variables, initialization_script, s3_kms_key, instance_type, volume_size, volume_kms_key, encrypt_inter_container_traffic, security_group_ids, subnets, max_retry_attempts, max_runtime_in_seconds, tags, additional_dependencies, retry_policies, depends_on)