Source code for pyatlan.model.assets.salesforce_field

# SPDX-License-Identifier: Apache-2.0
# Copyright 2025 Atlan Pte. Ltd.


from __future__ import annotations

from typing import ClassVar, List, Optional, Set

from pydantic.v1 import Field, validator

from pyatlan.model.fields.atlan_fields import (
    BooleanField,
    KeywordField,
    KeywordTextField,
    NumericField,
    RelationField,
    TextField,
)

from .salesforce import Salesforce


[docs] class SalesforceField(Salesforce): """Description""" type_name: str = Field(default="SalesforceField", allow_mutation=False) @validator("type_name") def validate_type_name(cls, v): if v != "SalesforceField": raise ValueError("must be SalesforceField") return v def __setattr__(self, name, value): if name in SalesforceField._convenience_properties: return object.__setattr__(self, name, value) super().__setattr__(name, value) DATA_TYPE: ClassVar[KeywordTextField] = KeywordTextField( "dataType", "dataType", "dataType.text" ) """ Data type of values in this field. """ OBJECT_QUALIFIED_NAME: ClassVar[KeywordField] = KeywordField( "objectQualifiedName", "objectQualifiedName" ) """ Unique name of the object in which this field exists. """ ORDER: ClassVar[NumericField] = NumericField("order", "order") """ Order (position) of this field within the object. """ INLINE_HELP_TEXT: ClassVar[TextField] = TextField( "inlineHelpText", "inlineHelpText.text" ) """ Help text for this field. """ IS_CALCULATED: ClassVar[BooleanField] = BooleanField("isCalculated", "isCalculated") """ Whether this field is calculated (true) or not (false). """ FORMULA: ClassVar[TextField] = TextField("formula", "formula") """ Formula for this field, if it is a calculated field. """ IS_CASE_SENSITIVE: ClassVar[BooleanField] = BooleanField( "isCaseSensitive", "isCaseSensitive" ) """ Whether this field is case sensitive (true) or in-sensitive (false). """ IS_ENCRYPTED: ClassVar[BooleanField] = BooleanField("isEncrypted", "isEncrypted") """ Whether this field is encrypted (true) or not (false). """ MAX_LENGTH: ClassVar[NumericField] = NumericField("maxLength", "maxLength") """ Maximum length of this field. """ IS_NULLABLE: ClassVar[BooleanField] = BooleanField("isNullable", "isNullable") """ Whether this field allows null values (true) or not (false). """ PRECISION: ClassVar[NumericField] = NumericField("precision", "precision") """ Total number of digits allowed """ NUMERIC_SCALE: ClassVar[NumericField] = NumericField("numericScale", "numericScale") """ Number of digits allowed to the right of the decimal point. """ IS_UNIQUE: ClassVar[BooleanField] = BooleanField("isUnique", "isUnique") """ Whether this field must have unique values (true) or not (false). """ PICKLIST_VALUES: ClassVar[TextField] = TextField("picklistValues", "picklistValues") """ List of values from which a user can pick while adding a record. """ IS_POLYMORPHIC_FOREIGN_KEY: ClassVar[BooleanField] = BooleanField( "isPolymorphicForeignKey", "isPolymorphicForeignKey" ) """ Whether this field references a record of multiple objects (true) or not (false). """ DEFAULT_VALUE_FORMULA: ClassVar[TextField] = TextField( "defaultValueFormula", "defaultValueFormula" ) """ Formula for the default value for this field. """ LOOKUP_OBJECTS: ClassVar[RelationField] = RelationField("lookupObjects") """ TBC """ OBJECT: ClassVar[RelationField] = RelationField("object") """ TBC """ _convenience_properties: ClassVar[List[str]] = [ "data_type", "object_qualified_name", "order", "inline_help_text", "is_calculated", "formula", "is_case_sensitive", "is_encrypted", "max_length", "is_nullable", "precision", "numeric_scale", "is_unique", "picklist_values", "is_polymorphic_foreign_key", "default_value_formula", "lookup_objects", "object", ] @property def data_type(self) -> Optional[str]: return None if self.attributes is None else self.attributes.data_type @data_type.setter def data_type(self, data_type: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.data_type = data_type @property def object_qualified_name(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.object_qualified_name ) @object_qualified_name.setter def object_qualified_name(self, object_qualified_name: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.object_qualified_name = object_qualified_name @property def order(self) -> Optional[int]: return None if self.attributes is None else self.attributes.order @order.setter def order(self, order: Optional[int]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.order = order @property def inline_help_text(self) -> Optional[str]: return None if self.attributes is None else self.attributes.inline_help_text @inline_help_text.setter def inline_help_text(self, inline_help_text: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.inline_help_text = inline_help_text @property def is_calculated(self) -> Optional[bool]: return None if self.attributes is None else self.attributes.is_calculated @is_calculated.setter def is_calculated(self, is_calculated: Optional[bool]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.is_calculated = is_calculated @property def formula(self) -> Optional[str]: return None if self.attributes is None else self.attributes.formula @formula.setter def formula(self, formula: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.formula = formula @property def is_case_sensitive(self) -> Optional[bool]: return None if self.attributes is None else self.attributes.is_case_sensitive @is_case_sensitive.setter def is_case_sensitive(self, is_case_sensitive: Optional[bool]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.is_case_sensitive = is_case_sensitive @property def is_encrypted(self) -> Optional[bool]: return None if self.attributes is None else self.attributes.is_encrypted @is_encrypted.setter def is_encrypted(self, is_encrypted: Optional[bool]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.is_encrypted = is_encrypted @property def max_length(self) -> Optional[int]: return None if self.attributes is None else self.attributes.max_length @max_length.setter def max_length(self, max_length: Optional[int]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.max_length = max_length @property def is_nullable(self) -> Optional[bool]: return None if self.attributes is None else self.attributes.is_nullable @is_nullable.setter def is_nullable(self, is_nullable: Optional[bool]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.is_nullable = is_nullable @property def precision(self) -> Optional[int]: return None if self.attributes is None else self.attributes.precision @precision.setter def precision(self, precision: Optional[int]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.precision = precision @property def numeric_scale(self) -> Optional[float]: return None if self.attributes is None else self.attributes.numeric_scale @numeric_scale.setter def numeric_scale(self, numeric_scale: Optional[float]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.numeric_scale = numeric_scale @property def is_unique(self) -> Optional[bool]: return None if self.attributes is None else self.attributes.is_unique @is_unique.setter def is_unique(self, is_unique: Optional[bool]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.is_unique = is_unique @property def picklist_values(self) -> Optional[Set[str]]: return None if self.attributes is None else self.attributes.picklist_values @picklist_values.setter def picklist_values(self, picklist_values: Optional[Set[str]]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.picklist_values = picklist_values @property def is_polymorphic_foreign_key(self) -> Optional[bool]: return ( None if self.attributes is None else self.attributes.is_polymorphic_foreign_key ) @is_polymorphic_foreign_key.setter def is_polymorphic_foreign_key(self, is_polymorphic_foreign_key: Optional[bool]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.is_polymorphic_foreign_key = is_polymorphic_foreign_key @property def default_value_formula(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.default_value_formula ) @default_value_formula.setter def default_value_formula(self, default_value_formula: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.default_value_formula = default_value_formula @property def lookup_objects(self) -> Optional[List[SalesforceObject]]: return None if self.attributes is None else self.attributes.lookup_objects @lookup_objects.setter def lookup_objects(self, lookup_objects: Optional[List[SalesforceObject]]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.lookup_objects = lookup_objects @property def object(self) -> Optional[SalesforceObject]: return None if self.attributes is None else self.attributes.object @object.setter def object(self, object: Optional[SalesforceObject]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.object = object class Attributes(Salesforce.Attributes): data_type: Optional[str] = Field(default=None, description="") object_qualified_name: Optional[str] = Field(default=None, description="") order: Optional[int] = Field(default=None, description="") inline_help_text: Optional[str] = Field(default=None, description="") is_calculated: Optional[bool] = Field(default=None, description="") formula: Optional[str] = Field(default=None, description="") is_case_sensitive: Optional[bool] = Field(default=None, description="") is_encrypted: Optional[bool] = Field(default=None, description="") max_length: Optional[int] = Field(default=None, description="") is_nullable: Optional[bool] = Field(default=None, description="") precision: Optional[int] = Field(default=None, description="") numeric_scale: Optional[float] = Field(default=None, description="") is_unique: Optional[bool] = Field(default=None, description="") picklist_values: Optional[Set[str]] = Field(default=None, description="") is_polymorphic_foreign_key: Optional[bool] = Field(default=None, description="") default_value_formula: Optional[str] = Field(default=None, description="") lookup_objects: Optional[List[SalesforceObject]] = Field( default=None, description="" ) # relationship object: Optional[SalesforceObject] = Field( default=None, description="" ) # relationship attributes: SalesforceField.Attributes = Field( default_factory=lambda: SalesforceField.Attributes(), description=( "Map of attributes in the instance and their values. " "The specific keys of this map will vary by type, " "so are described in the sub-types of this schema." ), )
from .salesforce_object import SalesforceObject # noqa: E402, F401 SalesforceField.Attributes.update_forward_refs()