
using System;
using System.Collections.Generic;

namespace Ato.EN.IntegrationServices.CodeGenerationCGTS
{
    public class CGTS2018
    {
    
    public string RPId = null;
    public bool RPExists = false;
    public int RPCount = 0;
    public int RPOccurrenceIndex = 0;
    public int RPLastOccurrenceIndex = 0;
    public string RPIdentifier = null;
    public string RPIdentifierScheme = null;
        public string RPIdentifierTFN = null;
        public DateTime? RPStartDate = null;
        public DateTime? RPEndDate = null;

        /// <summary>
        /// RP:tns:Identifiers.TaxFileNumber.Identifier
        /// </summary>
        public string CGTS1 = null;

        /// <summary>
        /// RP:tns:IncomeTax.AttributionManagedInvestmentTrustClass.Description
        /// </summary>
        public string CGTS153 = null;

        /// <summary>
        /// RP:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS118 = null;

        /// <summary>
        /// RP:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS119 = null;

        /// <summary>
        /// RP:tns:TaxConcession.CapitalGains.SmallBusinessActiveAssetReduction.Amount
        /// </summary>
        public decimal? CGTS127 = null;

        /// <summary>
        /// RP:tns:TaxConcession.CapitalGains.SmallBusinessRetirementExemption.Amount
        /// </summary>
        public decimal? CGTS128 = null;

        /// <summary>
        /// RP:tns:TaxConcession.CapitalGains.SmallBusinessRollover.Amount
        /// </summary>
        public decimal? CGTS129 = null;

        /// <summary>
        /// RP:tns:TaxConcession.CapitalGains.DiscountAndSmallBusinessConcessionsTotal.Amount
        /// </summary>
        public decimal? CGTS130 = null;

        /// <summary>
        /// RP:tns:Income.CapitalGainsNet.Amount
        /// </summary>
        public decimal? CGTS131 = null;

        /// <summary>
        /// RP:tns:Report.TargetFinancial.Year
        /// </summary>
        public int? CGTS150 = null;

        /// <summary>
        /// RP:tns:Miscellaneous.RequestedAmendment.Amount
        /// </summary>
        public decimal? CGTS151 = null;

        /// <summary>
        /// RP:tns:TaxConcession.CapitalGains.SmallBusinessExemptionExempt.Amount
        /// </summary>
        public decimal? CGTS138 = null;

        /// <summary>
        /// RP:tns:TaxConcession.CapitalGains.SmallBusinessExemptionAssetOrEvent.Code
        /// </summary>
        public string CGTS139 = null;

        /// <summary>
        /// RP:tns:Capital.Gains.ForeignResidentExemption.Amount
        /// </summary>
        public decimal? CGTS140 = null;

        /// <summary>
        /// RP:tns:Capital.Gains.ScriptForScriptRolloverDeferral.Amount
        /// </summary>
        public decimal? CGTS45 = null;

        /// <summary>
        /// RP:tns:Capital.Gains.InterCompanyAssetRolloverDeferral.Amount
        /// </summary>
        public decimal? CGTS46 = null;

        /// <summary>
        /// RP:tns:Capital.Gains.DemergingEntityExemption.Amount
        /// </summary>
        public decimal? CGTS47 = null;
        public List<RPEarnoutArrangementGroupNumberContext> RPEarnoutArrangementGroupNumberContextCollection = null;
        public class RPEarnoutArrangementGroupNumberContext
        {
    
            public string Id = null;
            public bool Exists = false;
            public int Count = 0;
            public int OccurrenceIndex = 0;
            public int LastOccurrenceIndex = 0;
            public string Identifier = null;
            public string IdentifierScheme = null;
            public string IdentifierTFN = null;
            public DateTime? StartDate = null;
            public DateTime? EndDate = null;

            public string EarnoutArrangementGroupItemDimensionValue = null;
    
            /// <summary>
            /// RPEarnoutArrangementGroupNumber:tns:Report.ItemOrder.Number
            /// </summary>
            public string CGTS160 = null;
    
            /// <summary>
            /// RPEarnoutArrangementGroupNumber:tns:Miscellaneous.EarnoutArrangementEligibility.Code
            /// </summary>
            public string CGTS133 = null;
    
            /// <summary>
            /// RPEarnoutArrangementGroupNumber:tns:Miscellaneous.EarnoutArrangementDuration.Count
            /// </summary>
            public decimal? CGTS134 = null;
    
            /// <summary>
            /// RPEarnoutArrangementGroupNumber:tns:Miscellaneous.EarnoutArrangementApplicableYear.Number
            /// </summary>
            public decimal? CGTS135 = null;
    
            /// <summary>
            /// RPEarnoutArrangementGroupNumber:tns:CapitalGainsTax.EarnoutArrangementEstimatedCapitalProceedsTotal.Amount
            /// </summary>
            public decimal? CGTS136 = null;
    
            /// <summary>
            /// RPEarnoutArrangementGroupNumber:tns:CapitalGainsTax.CapitalGainsOrLossesOnNonQualifyingEarnoutArrangementNet.Amount
            /// </summary>
            public decimal? CGTS152 = null;
        }

        public string RPAppliedId = null;
        public bool RPAppliedExists = false;
        public int RPAppliedCount = 0;
        public int RPAppliedOccurrenceIndex = 0;
        public int RPAppliedLastOccurrenceIndex = 0;
        public string RPAppliedIdentifier = null;
        public string RPAppliedIdentifierScheme = null;
        public string RPAppliedIdentifierTFN = null;
        public DateTime? RPAppliedStartDate = null;
        public DateTime? RPAppliedEndDate = null;

        /// <summary>
        /// RPApplied:tns:Capital.Losses.TransferredTotal.Amount
        /// </summary>
        public decimal? CGTS122 = null;

        /// <summary>
        /// RPApplied:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS123 = null;

        /// <summary>
        /// RPApplied:tns:TaxConcession.CapitalGains.DiscountTotal.Amount
        /// </summary>
        public decimal? CGTS126 = null;

        public string RPAppliedY0Id = null;
        public bool RPAppliedY0Exists = false;
        public int RPAppliedY0Count = 0;
        public int RPAppliedY0OccurrenceIndex = 0;
        public int RPAppliedY0LastOccurrenceIndex = 0;
        public string RPAppliedY0Identifier = null;
        public string RPAppliedY0IdentifierScheme = null;
        public string RPAppliedY0IdentifierTFN = null;
        public DateTime? RPAppliedY0StartDate = null;
        public DateTime? RPAppliedY0EndDate = null;

        /// <summary>
        /// RPAppliedY0:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS120 = null;

        public string RPAppliedY0MinusId = null;
        public bool RPAppliedY0MinusExists = false;
        public int RPAppliedY0MinusCount = 0;
        public int RPAppliedY0MinusOccurrenceIndex = 0;
        public int RPAppliedY0MinusLastOccurrenceIndex = 0;
        public string RPAppliedY0MinusIdentifier = null;
        public string RPAppliedY0MinusIdentifierScheme = null;
        public string RPAppliedY0MinusIdentifierTFN = null;
        public DateTime? RPAppliedY0MinusStartDate = null;
        public DateTime? RPAppliedY0MinusEndDate = null;

        /// <summary>
        /// RPAppliedY0Minus:tns:Capital.Losses.NetTotal.Amount
        /// </summary>
        public decimal? CGTS43 = null;

        public string RPListedCompanySharesId = null;
        public bool RPListedCompanySharesExists = false;
        public int RPListedCompanySharesCount = 0;
        public int RPListedCompanySharesOccurrenceIndex = 0;
        public int RPListedCompanySharesLastOccurrenceIndex = 0;
        public string RPListedCompanySharesIdentifier = null;
        public string RPListedCompanySharesIdentifierScheme = null;
        public string RPListedCompanySharesIdentifierTFN = null;
        public DateTime? RPListedCompanySharesStartDate = null;
        public DateTime? RPListedCompanySharesEndDate = null;

        /// <summary>
        /// RPListedCompanyShares:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS95 = null;

        /// <summary>
        /// RPListedCompanyShares:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS96 = null;

        public string RPOtherSharesId = null;
        public bool RPOtherSharesExists = false;
        public int RPOtherSharesCount = 0;
        public int RPOtherSharesOccurrenceIndex = 0;
        public int RPOtherSharesLastOccurrenceIndex = 0;
        public string RPOtherSharesIdentifier = null;
        public string RPOtherSharesIdentifierScheme = null;
        public string RPOtherSharesIdentifierTFN = null;
        public DateTime? RPOtherSharesStartDate = null;
        public DateTime? RPOtherSharesEndDate = null;

        /// <summary>
        /// RPOtherShares:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS97 = null;

        /// <summary>
        /// RPOtherShares:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS98 = null;

        public string RPListedUnitTrustsId = null;
        public bool RPListedUnitTrustsExists = false;
        public int RPListedUnitTrustsCount = 0;
        public int RPListedUnitTrustsOccurrenceIndex = 0;
        public int RPListedUnitTrustsLastOccurrenceIndex = 0;
        public string RPListedUnitTrustsIdentifier = null;
        public string RPListedUnitTrustsIdentifierScheme = null;
        public string RPListedUnitTrustsIdentifierTFN = null;
        public DateTime? RPListedUnitTrustsStartDate = null;
        public DateTime? RPListedUnitTrustsEndDate = null;

        /// <summary>
        /// RPListedUnitTrusts:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS99 = null;

        /// <summary>
        /// RPListedUnitTrusts:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS100 = null;

        public string RPOtherUnitsId = null;
        public bool RPOtherUnitsExists = false;
        public int RPOtherUnitsCount = 0;
        public int RPOtherUnitsOccurrenceIndex = 0;
        public int RPOtherUnitsLastOccurrenceIndex = 0;
        public string RPOtherUnitsIdentifier = null;
        public string RPOtherUnitsIdentifierScheme = null;
        public string RPOtherUnitsIdentifierTFN = null;
        public DateTime? RPOtherUnitsStartDate = null;
        public DateTime? RPOtherUnitsEndDate = null;

        /// <summary>
        /// RPOtherUnits:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS101 = null;

        /// <summary>
        /// RPOtherUnits:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS102 = null;

        public string RPAustralianRealPropertyId = null;
        public bool RPAustralianRealPropertyExists = false;
        public int RPAustralianRealPropertyCount = 0;
        public int RPAustralianRealPropertyOccurrenceIndex = 0;
        public int RPAustralianRealPropertyLastOccurrenceIndex = 0;
        public string RPAustralianRealPropertyIdentifier = null;
        public string RPAustralianRealPropertyIdentifierScheme = null;
        public string RPAustralianRealPropertyIdentifierTFN = null;
        public DateTime? RPAustralianRealPropertyStartDate = null;
        public DateTime? RPAustralianRealPropertyEndDate = null;

        /// <summary>
        /// RPAustralianRealProperty:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS103 = null;

        /// <summary>
        /// RPAustralianRealProperty:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS110 = null;

        public string RPOverseasRealPropertyId = null;
        public bool RPOverseasRealPropertyExists = false;
        public int RPOverseasRealPropertyCount = 0;
        public int RPOverseasRealPropertyOccurrenceIndex = 0;
        public int RPOverseasRealPropertyLastOccurrenceIndex = 0;
        public string RPOverseasRealPropertyIdentifier = null;
        public string RPOverseasRealPropertyIdentifierScheme = null;
        public string RPOverseasRealPropertyIdentifierTFN = null;
        public DateTime? RPOverseasRealPropertyStartDate = null;
        public DateTime? RPOverseasRealPropertyEndDate = null;

        /// <summary>
        /// RPOverseasRealProperty:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS111 = null;

        /// <summary>
        /// RPOverseasRealProperty:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS112 = null;

        public string RPCapitalGainsTrustDistributionsId = null;
        public bool RPCapitalGainsTrustDistributionsExists = false;
        public int RPCapitalGainsTrustDistributionsCount = 0;
        public int RPCapitalGainsTrustDistributionsOccurrenceIndex = 0;
        public int RPCapitalGainsTrustDistributionsLastOccurrenceIndex = 0;
        public string RPCapitalGainsTrustDistributionsIdentifier = null;
        public string RPCapitalGainsTrustDistributionsIdentifierScheme = null;
        public string RPCapitalGainsTrustDistributionsIdentifierTFN = null;
        public DateTime? RPCapitalGainsTrustDistributionsStartDate = null;
        public DateTime? RPCapitalGainsTrustDistributionsEndDate = null;

        /// <summary>
        /// RPCapitalGainsTrustDistributions:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS113 = null;

        public string RPCollectablesId = null;
        public bool RPCollectablesExists = false;
        public int RPCollectablesCount = 0;
        public int RPCollectablesOccurrenceIndex = 0;
        public int RPCollectablesLastOccurrenceIndex = 0;
        public string RPCollectablesIdentifier = null;
        public string RPCollectablesIdentifierScheme = null;
        public string RPCollectablesIdentifierTFN = null;
        public DateTime? RPCollectablesStartDate = null;
        public DateTime? RPCollectablesEndDate = null;

        /// <summary>
        /// RPCollectables:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS114 = null;

        /// <summary>
        /// RPCollectables:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS115 = null;

        public string RPOtherCapitalAssetsId = null;
        public bool RPOtherCapitalAssetsExists = false;
        public int RPOtherCapitalAssetsCount = 0;
        public int RPOtherCapitalAssetsOccurrenceIndex = 0;
        public int RPOtherCapitalAssetsLastOccurrenceIndex = 0;
        public string RPOtherCapitalAssetsIdentifier = null;
        public string RPOtherCapitalAssetsIdentifierScheme = null;
        public string RPOtherCapitalAssetsIdentifierTFN = null;
        public DateTime? RPOtherCapitalAssetsStartDate = null;
        public DateTime? RPOtherCapitalAssetsEndDate = null;

        /// <summary>
        /// RPOtherCapitalAssets:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS116 = null;

        /// <summary>
        /// RPOtherCapitalAssets:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS117 = null;

        /// <summary>
        /// RPOtherCapitalAssets:tns:CapitalGainsTax.DeferredRelief.Amount
        /// </summary>
        public decimal? CGTS163 = null;

        public string RPCollectablesUnappliedInstantId = null;
        public bool RPCollectablesUnappliedInstantExists = false;
        public int RPCollectablesUnappliedInstantCount = 0;
        public int RPCollectablesUnappliedInstantOccurrenceIndex = 0;
        public int RPCollectablesUnappliedInstantLastOccurrenceIndex = 0;
        public string RPCollectablesUnappliedInstantIdentifier = null;
        public string RPCollectablesUnappliedInstantIdentifierScheme = null;
        public string RPCollectablesUnappliedInstantIdentifierTFN = null;
        public DateTime? RPCollectablesUnappliedInstantInstantDate = null;

        /// <summary>
        /// RPCollectablesUnappliedInstant:tns:Capital.Losses.CarriedForward.Net.Amount
        /// </summary>
        public decimal? CGTS124 = null;

        public string RPCGTOtherUnappliedInstantId = null;
        public bool RPCGTOtherUnappliedInstantExists = false;
        public int RPCGTOtherUnappliedInstantCount = 0;
        public int RPCGTOtherUnappliedInstantOccurrenceIndex = 0;
        public int RPCGTOtherUnappliedInstantLastOccurrenceIndex = 0;
        public string RPCGTOtherUnappliedInstantIdentifier = null;
        public string RPCGTOtherUnappliedInstantIdentifierScheme = null;
        public string RPCGTOtherUnappliedInstantIdentifierTFN = null;
        public DateTime? RPCGTOtherUnappliedInstantInstantDate = null;

        /// <summary>
        /// RPCGTOtherUnappliedInstant:tns:Capital.Losses.CarriedForward.Net.Amount
        /// </summary>
        public decimal? CGTS125 = null;

        public string RPTransfersToOtherClassesId = null;
        public bool RPTransfersToOtherClassesExists = false;
        public int RPTransfersToOtherClassesCount = 0;
        public int RPTransfersToOtherClassesOccurrenceIndex = 0;
        public int RPTransfersToOtherClassesLastOccurrenceIndex = 0;
        public string RPTransfersToOtherClassesIdentifier = null;
        public string RPTransfersToOtherClassesIdentifierScheme = null;
        public string RPTransfersToOtherClassesIdentifierTFN = null;
        public DateTime? RPTransfersToOtherClassesStartDate = null;
        public DateTime? RPTransfersToOtherClassesEndDate = null;

        /// <summary>
        /// RPTransfersToOtherClasses:tns:Capital.Gains.Total.Amount
        /// </summary>
        public decimal? CGTS154 = null;

        /// <summary>
        /// RPTransfersToOtherClasses:tns:Capital.Losses.Total.Amount
        /// </summary>
        public decimal? CGTS155 = null;

    }
}