class_docstr: An Amazon SageMaker action, which is part of a SageMaker lineage.
  
  Examples:
      .. code-block:: python
  
          from sagemaker.lineage import action
  
          my_action = action.Action.create(
              action_name='MyAction',
              action_type='EndpointDeployment',
              source_uri='s3://...')
  
          my_action.properties["added"] = "property"
          my_action.save()
  
          for actn in action.Action.list():
              print(actn)
  
          my_action.delete()
  
  Attributes:
      action_arn (str): The ARN of the action.
      action_name (str): The name of the action.
      action_type (str): The type of the action.
      description (str): A description of the action.
      status (str): The status of the action.
      source (obj): The source of the action with a URI and type.
      properties (dict): Dictionary of properties.
      tags (List[dict[str, str]]): A list of tags to associate with the action.
      creation_time (datetime): When the action was created.
      created_by (obj): Contextual info on which account created the action.
      last_modified_time (datetime): When the action was last modified.
      last_modified_by (obj): Contextual info on which account created the action.
docstr: Use a lineage query to retrieve all artifacts that use this action.
  
  Args:
      direction (LineageQueryDirectionEnum, optional): The query direction.
  
  Returns:
      list of Artifacts: Artifacts.
docstr_tok: ["Use","a","lineage","query","to","retrieve","all","artifacts","that","use","this","action",".","Args",":","direction","(","LineageQueryDirectionEnum",",","optional",")",":","The","query","direction",".","Returns",":","list","of","Artifacts",":","Artifacts","."]
code: def artifacts(
      self,
      direction: LineageQueryDirectionEnum = LineageQueryDirectionEnum.BOTH,
  ) -> List[Artifact]:
      """Use a lineage query to retrieve all artifacts that use this action.
  
      Args:
          direction (LineageQueryDirectionEnum, optional): The query direction.
  
      Returns:
          list of Artifacts: Artifacts.
      """
      query_filter = LineageFilter(
          entities=[LineageEntityEnum.ARTIFACT]
      )
      query_result = LineageQuery(self.sagemaker_session).query(
          start_arns=[self.action_arn],
          query_filter=query_filter,
          direction=direction,
          include_edges=False,
      )
      return [
          vertex.to_lineage_object() for vertex in query_result.vertices
      ]
  
imports: from __future__ import absolute_import
  from typing import Optional, Iterator, List
  from datetime import datetime
  from sagemaker.session import Session
  from sagemaker.apiutils import _base_types
  from sagemaker.lineage import _api_types, _utils
  from sagemaker.lineage._api_types import ActionSource, ActionSummary
  from sagemaker.lineage.artifact import Artifact
  from sagemaker.utils import format_tags
  from sagemaker.lineage.query import LineageQuery, LineageFilter, LineageSourceEnum, LineageEntityEnum, LineageQueryDirectionEnum
label_desc: Use image node_id 8 for calling the Action obj's underlying member method code with example usage: obj.artifacts(direction) and returns: unknown