text: from __future__ import annotations
  
  from spark_auto_mapper_fhir.fhir_types.uri import FhirUri
  
  from spark_auto_mapper_fhir.value_sets.generic_type import GenericTypeCode
  from spark_auto_mapper.type_definitions.defined_types import AutoMapperTextInputType
  
  
  # This file is auto-generated by generate_classes so do not edit manually
  # noinspection PyPep8Naming
  class HL7UpdateMode(GenericTypeCode):
      """
      v3.HL7UpdateMode
      From: http://terminology.hl7.org/ValueSet/v3-HL7UpdateMode in v3-codesystems.xml
           The possible modes of updating that occur when an attribute is received by a
      system that already contains values for that attribute.
      """
  
      def __init__(self, value: AutoMapperTextInputType):
          super().__init__(value=value)
  
      """
      http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode
      """
      codeset: FhirUri = "http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode"
  
  
  class HL7UpdateModeValues:
      """
      Description:The item was (or is to be) added, having not been present
      immediately before. (If it is already present, this may be treated as an error
      condition.)
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
  
      Add = HL7UpdateMode("A")
      """
      Description:The item was (or is to be) either added or replaced.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      AddOrReplace = HL7UpdateMode("AR")
      """
      Description:The item was (or is to be) removed (sometimes referred to as
      deleted). If the item is part of a collection, delete any matching items.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Remove = HL7UpdateMode("D")
      """
      Description:This item is part of the identifying information for this object.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Key = HL7UpdateMode("K")
      """
      Description:There was (or is to be) no change to the item. This is primarily
      used when this element has not changed, but other attributes in the instance
      have changed.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      NoChange = HL7UpdateMode("N")
      """
      Description:The item existed previously and has (or is to be) revised. (If an
      item does not already exist, this may be treated as an error condition.)
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Replace = HL7UpdateMode("R")
      """
      Description:This item provides enough information to allow a processing system
      to locate the full applicable record by identifying the object.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Reference = HL7UpdateMode("REF")
      """
      Description:Description:</b>It is not specified whether or what kind of change
      has occurred to the item, or whether the item is present as a reference or
      identifying property.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Unknown = HL7UpdateMode("U")
      """
      These concepts apply when the element and/or message is updating a set of
      items.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      SetUpdateMode = HL7UpdateMode("_SetUpdateMode")
      """
      Description: AU: If this item exists, update it with these values. If it does
      not exist, create it with these values. If the item is part of the collection,
      update each item that matches this item, and if no items match, add a new item
      to the collection.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      AddOrUpdate = HL7UpdateMode("AU")
      """
      Ignore this role, it is not relevant to the update.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Ignore = HL7UpdateMode("I")
      """
      Verify - this message element must match a value already in the receiving
      systems database in order to process the message.
      From: http://terminology.hl7.org/CodeSystem/v3-HL7UpdateMode in v3-codesystems.xml
      """
      Verify = HL7UpdateMode("V")
  