// Code generated by jtd-codegen for C# + System.Text.Json v0.2.1
#pragma warning disable CS8601, CS8618

using System.Text.Json.Serialization;

namespace Senzing.Typedef
{
    public class SenzingEntitySpecification
    {
        /// <summary>
        /// Domain/system for the account number. An
        /// attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ACCOUNT_DOMAIN")]
        public string AccountDomain { get; set; }

        /// <summary>
        /// Account number (e.g., bank, card). An attribute
        /// in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ACCOUNT_NUMBER")]
        public string AccountNumber { get; set; }

        /// <summary>
        /// City/locality. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_CITY")]
        public string AddrCity { get; set; }

        /// <summary>
        /// Country code. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_COUNTRY")]
        public string AddrCountry { get; set; }

        /// <summary>
        /// Single-field address when parsed components are unavailable.
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_FULL")]
        public string AddrFull { get; set; }

        /// <summary>
        /// First address line (street, number). An attribute
        /// in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_LINE1")]
        public string AddrLine1 { get; set; }

        /// <summary>
        /// Second address line (apt/suite). An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_LINE2")]
        public string AddrLine2 { get; set; }

        /// <summary>
        /// Third address line (optional). An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_LINE3")]
        public string AddrLine3 { get; set; }

        /// <summary>
        /// Fourth address line (optional). An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_LINE4")]
        public string AddrLine4 { get; set; }

        /// <summary>
        /// Fifth address line (optional). An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_LINE5")]
        public string AddrLine5 { get; set; }

        /// <summary>
        /// Sixth address line (optional). An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_LINE6")]
        public string AddrLine6 { get; set; }

        /// <summary>
        /// Postal/ZIP code. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_POSTAL_CODE")]
        public string AddrPostalCode { get; set; }

        /// <summary>
        /// State/province/region code. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_STATE")]
        public string AddrState { get; set; }

        /// <summary>
        /// Optional; include when provided by the source. Common
        /// values: HOME, MAILING (persons); BUSINESS (organizations).
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("ADDR_TYPE")]
        public string AddrType { get; set; }

        /// <summary>
        /// Country of citizenship (code or label) as provided by the
        /// source. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("CITIZENSHIP")]
        public string Citizenship { get; set; }

        /// <summary>
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("DATE_OF_BIRTH")]
        public string DateOfBirth { get; set; }

        /// <summary>
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("DATE_OF_DEATH")]
        public string DateOfDeath { get; set; }

        /// <summary>
        /// Driver's license number. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("DRIVERS_LICENSE_NUMBER")]
        public string DriversLicenseNumber { get; set; }

        /// <summary>
        /// Issuing state/province/country. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("DRIVERS_LICENSE_STATE")]
        public string DriversLicenseState { get; set; }

        /// <summary>
        /// Dun and Bradstreet company identifier. An
        /// attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("DUNS_NUMBER")]
        public string DunsNumber { get; set; }

        /// <summary>
        /// Email address. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("EMAIL_ADDRESS")]
        public string EmailAddress { get; set; }

        /// <summary>
        /// This is the name of the organization the person is employed
        /// by. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("EMPLOYER")]
        public string Employer { get; set; }

        [JsonPropertyName("EMPLOYER_NAME")]
        public string EmployerName { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("FACEBOOK")]
        public string Facebook { get; set; }

        /// <summary>
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("GENDER")]
        public string Gender { get; set; }

        /// <summary>
        /// The identifier the entity is associated with. An
        /// attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("GROUP_ASSN_ID_NUMBER")]
        public string GroupAssnIdNumber { get; set; }

        /// <summary>
        /// The type of group identifier an entity is associated with.
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("GROUP_ASSN_ID_TYPE")]
        public string GroupAssnIdType { get; set; }

        /// <summary>
        /// Name of the associated organization; use the official or
        /// standardized name. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("GROUP_ASSOCIATION_ORG_NAME")]
        public string GroupAssociationOrgName { get; set; }

        /// <summary>
        /// Specific group/role within the organization; use precise
        /// categories (e.g., OWNER_EXEC, BOARD_MEMBER) to improve
        /// resolution. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("GROUP_ASSOCIATION_TYPE")]
        public string GroupAssociationType { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("INSTAGRAM")]
        public string Instagram { get; set; }

        /// <summary>
        /// Legal Entity Identifier. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("LEI_NUMBER")]
        public string LeiNumber { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("LINKEDIN")]
        public string Linkedin { get; set; }

        /// <summary>
        /// Person given name. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_FIRST")]
        public string NameFirst { get; set; }

        /// <summary>
        /// Single-field name when type (person vs org) is unknown or only
        /// a full name is provided. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_FULL")]
        public string NameFull { get; set; }

        /// <summary>
        /// Person surname. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_LAST")]
        public string NameLast { get; set; }

        /// <summary>
        /// Person middle name/initial. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_MIDDLE")]
        public string NameMiddle { get; set; }

        /// <summary>
        /// Organization name. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_ORG")]
        public string NameOrg { get; set; }

        /// <summary>
        /// Person title. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_PREFIX")]
        public string NamePrefix { get; set; }

        /// <summary>
        /// Person suffix. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_SUFFIX")]
        public string NameSuffix { get; set; }

        /// <summary>
        /// Optional include when the source provides it. Common
        /// values: PRIMARY, AKA (persons), DBA (organizations).
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NAME_TYPE")]
        public string NameType { get; set; }

        /// <summary>
        /// Country of nationality (code or label) as provided by the
        /// source. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NATIONALITY")]
        public string Nationality { get; set; }

        /// <summary>
        /// Issuing country. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NATIONAL_ID_COUNTRY")]
        public string NationalIdCountry { get; set; }

        /// <summary>
        /// National identifier value. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NATIONAL_ID_NUMBER")]
        public string NationalIdNumber { get; set; }

        /// <summary>
        /// Use the type label from the source; standardize across
        /// sources. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NATIONAL_ID_TYPE")]
        public string NationalIdType { get; set; }

        [JsonPropertyName("NATIVE_NAME_FULL")]
        public string NativeNameFull { get; set; }

        /// <summary>
        /// US healthcare provider identifier. An attribute
        /// in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("NPI_NUMBER")]
        public string NpiNumber { get; set; }

        /// <summary>
        /// Optional as country often not known or issued by an organization.
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("OTHER_ID_COUNTRY")]
        public string OtherIdCountry { get; set; }

        /// <summary>
        /// Identification number. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("OTHER_ID_NUMBER")]
        public string OtherIdNumber { get; set; }

        /// <summary>
        /// Standardized source type. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("OTHER_ID_TYPE")]
        public string OtherIdType { get; set; }

        /// <summary>
        /// Issuing country. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("PASSPORT_COUNTRY")]
        public string PassportCountry { get; set; }

        /// <summary>
        /// Passport number. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("PASSPORT_NUMBER")]
        public string PassportNumber { get; set; }

        /// <summary>
        /// Telephone number. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("PHONE_NUMBER")]
        public string PhoneNumber { get; set; }

        /// <summary>
        /// Optional; include when provided by the source. Common
        /// values: MOBILE, HOME, WORK, FAX. MOBILE carries extra
        /// weight. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("PHONE_TYPE")]
        public string PhoneType { get; set; }

        /// <summary>
        /// Place of birth; may be a city/region or a country code/label
        /// as provided by the source. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("PLACE_OF_BIRTH")]
        public string PlaceOfBirth { get; set; }

        [JsonPropertyName("PRIMARY_NAME_FIRST")]
        public string PrimaryNameFirst { get; set; }

        [JsonPropertyName("PRIMARY_NAME_FULL")]
        public string PrimaryNameFull { get; set; }

        [JsonPropertyName("PRIMARY_NAME_LAST")]
        public string PrimaryNameLast { get; set; }

        [JsonPropertyName("PRIMARY_NAME_MIDDLE")]
        public string PrimaryNameMiddle { get; set; }

        [JsonPropertyName("PRIMARY_NAME_ORG")]
        public string PrimaryNameOrg { get; set; }

        /// <summary>
        /// Include when known to prevent cross-type resolution;
        /// omit if unknown. Use standardized kinds (PERSON,
        /// ORGANIZATION). Often used to determine icon/shape in graphs.
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("RECORD_TYPE")]
        public string RecordType { get; set; }

        /// <summary>
        /// Country of registration (code or label) as provided by the
        /// source. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REGISTRATION_COUNTRY")]
        public string RegistrationCountry { get; set; }

        /// <summary>
        /// Organization registration/incorporation date. An
        /// attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REGISTRATION_DATE")]
        public string RegistrationDate { get; set; }

        [JsonPropertyName("RELATIONSHIP_KEY")]
        public string RelationshipKey { get; set; }

        [JsonPropertyName("RELATIONSHIP_TYPE")]
        public string RelationshipType { get; set; }

        /// <summary>
        /// This code helps keep the REL_ANCHOR_KEY unique. This is a code
        /// (without dashes) for the data source or source field that is
        /// contributing the relationship. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REL_ANCHOR_DOMAIN")]
        public string RelAnchorDomain { get; set; }

        /// <summary>
        /// This key should be a unique value for the record within the
        /// REL_ANCHOR_DOMAIN. You can just use the current record's RECORD_ID
        /// here. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REL_ANCHOR_KEY")]
        public string RelAnchorKey { get; set; }

        /// <summary>
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REL_POINTER_DOMAIN")]
        public string RelPointerDomain { get; set; }

        /// <summary>
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REL_POINTER_KEY")]
        public string RelPointerKey { get; set; }

        /// <summary>
        /// This is the role the pointer record has to the anchor record.
        /// Such as SPOUSE_OF, SON_OF, FATHER_OF, EMPLOYED_BY, PRINCIPAL_OF,
        /// OWNER_OF, BRANCH_OF, DIRECT_PARENT, ULTIMATE_PARENT.
        /// Standardize these role codes for display and filtering.
        /// An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("REL_POINTER_ROLE")]
        public string RelPointerRole { get; set; }

        [JsonPropertyName("SECONDARY_NAME_ORG")]
        public string SecondaryNameOrg { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("SIGNAL")]
        public string Signal { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("SKYPE")]
        public string Skype { get; set; }

        /// <summary>
        /// US Social Security Number; partial accepted. An
        /// attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("SSN_NUMBER")]
        public string SsnNumber { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TANGO")]
        public string Tango { get; set; }

        /// <summary>
        /// Issuing country. An attribute in the Senzing Entity Specification.
        /// See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TAX_ID_COUNTRY")]
        public string TaxIdCountry { get; set; }

        /// <summary>
        /// Tax identification number. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TAX_ID_NUMBER")]
        public string TaxIdNumber { get; set; }

        /// <summary>
        /// Use the type label from the source; standardize across
        /// sources. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TAX_ID_TYPE")]
        public string TaxIdType { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TELEGRAM")]
        public string Telegram { get; set; }

        /// <summary>
        /// The identifier value shared by records that must resolve
        /// together. An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TRUSTED_ID_NUMBER")]
        public string TrustedIdNumber { get; set; }

        /// <summary>
        /// Short code for the identifier domain/system (e.g., STEWARD,
        /// MASTER_ID). An attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TRUSTED_ID_TYPE")]
        public string TrustedIdType { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("TWITTER")]
        public string Twitter { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("VIBER")]
        public string Viber { get; set; }

        /// <summary>
        /// Website or domain; typically for organizations. An
        /// attribute in the Senzing Entity Specification. See
        /// https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("WEBSITE_ADDRESS")]
        public string WebsiteAddress { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("WECHAT")]
        public string Wechat { get; set; }

        /// <summary>
        /// Social medial user name. An attribute in the Senzing Entity
        /// Specification. See https://www.senzing.com/docs/entity_specification
        /// </summary>
        [JsonPropertyName("WHATSAPP")]
        public string Whatsapp { get; set; }

        [JsonPropertyName("XXX_ADDR_FROM_DATE")]
        public string XxxAddrFromDate { get; set; }

        [JsonPropertyName("XXX_ADDR_THRU_DATE")]
        public string XxxAddrThruDate { get; set; }

        [JsonPropertyName("XXX_PHONE_FROM_DATE")]
        public string XxxPhoneFromDate { get; set; }

        [JsonPropertyName("XXX_PHONE_THRU_DATE")]
        public string XxxPhoneThruDate { get; set; }

        [JsonPropertyName("ZOOMROOM")]
        public string Zoomroom { get; set; }
    }
}
