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

using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace Senzing.Typedef
{
    public class SzEngineGetRecordResponse
    {
        /// <summary>
        /// A label identifying the provenance of the record.
        /// </summary>
        [JsonPropertyName("DATA_SOURCE")]
        public string DataSource { get; set; }

        [JsonPropertyName("FEATURES")]
        public IDictionary<string, IList<FeatureForAttributes>> Features { get; set; }

        [JsonPropertyName("FEATURE_IDS")]
        public IList<FeatureId> FeatureIds { get; set; }

        [JsonPropertyName("FIRST_SEEN_DT")]
        public DateTimeOffset FirstSeenDt { get; set; }

        [JsonPropertyName("JSON_DATA")]
        public IDictionary<string, Object_> JsonData { get; set; }

        [JsonPropertyName("LAST_SEEN_DT")]
        public DateTimeOffset LastSeenDt { get; set; }

        /// <summary>
        /// The unique identifier within the set of records in the DATA_SOURCE.
        /// </summary>
        [JsonPropertyName("RECORD_ID")]
        public string RecordId { get; set; }

        [JsonPropertyName("UNMAPPED_DATA")]
        public IDictionary<string, Object_> UnmappedData { get; set; }

        [JsonPropertyName("XXX_ADDRESS_DATA")]
        public IList<string> XxxAddressData { get; set; }

        [JsonPropertyName("XXX_ATTRIBUTE_DATA")]
        public IList<string> XxxAttributeData { get; set; }

        [JsonPropertyName("XXX_ENTITY_DATA")]
        public IList<string> XxxEntityData { get; set; }

        [JsonPropertyName("XXX_ENTITY_DESC")]
        public string XxxEntityDesc { get; set; }

        [JsonPropertyName("XXX_ENTITY_KEY")]
        public string XxxEntityKey { get; set; }

        [JsonPropertyName("XXX_ENTITY_TYPE")]
        public string XxxEntityType { get; set; }

        /// <summary>
        /// Identifier of the entity resolution rule that was triggered.
        /// </summary>
        [JsonPropertyName("XXX_ERRULE_CODE")]
        public string XxxErruleCode { get; set; }

        [JsonPropertyName("XXX_IDENTIFIER_DATA")]
        public IList<string> XxxIdentifierData { get; set; }

        /// <summary>
        /// Internal identifier for the record.
        /// </summary>
        [JsonPropertyName("XXX_INTERNAL_ID")]
        public int XxxInternalId { get; set; }

        /// <summary>
        /// Representation of matched source record features.
        /// </summary>
        [JsonPropertyName("XXX_MATCH_KEY")]
        public string XxxMatchKey { get; set; }

        [JsonPropertyName("XXX_MATCH_LEVEL")]
        public int XxxMatchLevel { get; set; }

        /// <summary>
        /// The type of match that occurred for the record.
        /// </summary>
        [JsonPropertyName("XXX_MATCH_LEVEL_CODE")]
        public string XxxMatchLevelCode { get; set; }

        [JsonPropertyName("XXX_NAME_DATA")]
        public IList<string> XxxNameData { get; set; }

        [JsonPropertyName("XXX_OTHER_DATA")]
        public IList<string> XxxOtherData { get; set; }

        [JsonPropertyName("XXX_PHONE_DATA")]
        public IList<string> XxxPhoneData { get; set; }

        [JsonPropertyName("XXX_RELATIONSHIP_DATA")]
        public IList<string> XxxRelationshipData { get; set; }
    }
}
