
using System;
using System.Collections.Generic;

namespace Ato.EN.IntegrationServices.CodeGenerationCGLS
{
    public class CGLS2017
    {
    
    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 CGLS1 = null;

        /// <summary>
        /// RP:tns:Identifiers.AustralianBusinessNumber.Identifier
        /// </summary>
        public string CGLS3 = null;
    
        public bool OrganisationNameDetailsCollectionExists = false;
        public int OrganisationNameDetailsCollectionCount = 0;

         /// <summary>
         /// [OrganisationNameDetails.OrganisationalNameType.Code='MN']
         /// </summary>
        public bool OrganisationNameDetailsCollection_MN_RPExists = false;

         /// <summary>
         /// [OrganisationNameDetails.OrganisationalNameType.Code='MN']
         /// </summary>
        public int OrganisationNameDetailsCollection_MN_RPCount = 0;

         /// <summary>
         /// [OrganisationNameDetails.OrganisationalNameType.Code='MN'] Occurrence Index
         /// </summary>
        public int OrganisationNameDetailsCollection_MN_RPOccurrenceIndex = 0;

         /// <summary>
         /// [OrganisationNameDetails.OrganisationalNameType.Code='MN'] Last Occurrence Index
         /// </summary>
        public int OrganisationNameDetailsCollection_MN_RPLastOccurrenceIndex = 0;

        /// <summary>
        /// xbrli:xbrl/tns:OrganisationNameDetails
        /// [OrganisationNameDetails.OrganisationalNameType.Code='MN']
        /// RP:tns:OrganisationNameDetails.OrganisationalNameType.Code
        /// </summary>
        public string CGLS100 = null;

        /// <summary>
        /// xbrli:xbrl/tns:OrganisationNameDetails
        /// [OrganisationNameDetails.OrganisationalNameType.Code='MN']
        /// RP:tns:OrganisationNameDetails.OrganisationalName.Text
        /// </summary>
        public string CGLS2 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.TransferredLossUtilisedApportionmentRulesApplied.Indicator
        /// </summary>
        public bool? CGLS35 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.TransferredLossCancelledByHeadCompany.Indicator
        /// </summary>
        public bool? CGLS36 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.CarriedForward.BusinessContinuityTestPassed.Amount
        /// </summary>
        public decimal? CGLS117 = null;

        /// <summary>
        /// RP:tns:Capital.Losses.CarriedForward.BusinessContinuityTestPassedNet.Amount
        /// </summary>
        public decimal? CGLS118 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.DeductedOwnershipTestFailContinuityTestPass.Amount
        /// </summary>
        public decimal? CGLS115 = null;

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

        /// <summary>
        /// RP:tns:Tax.Losses.CarriedForward.ComplyingSuperannuationClass.Amount
        /// </summary>
        public decimal? CGLS119 = null;

        /// <summary>
        /// RP:tns:Capital.Losses.CarriedForward.ComplyingSuperannuationClassNet.Amount
        /// </summary>
        public decimal? CGLS120 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.ControlledForeignCompany.Amount
        /// </summary>
        public decimal? CGLS82 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.ControlledForeignCompanyDeducted.Amount
        /// </summary>
        public decimal? CGLS69 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.CarriedForward.ControlledForeignCompany.Amount
        /// </summary>
        public decimal? CGLS70 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.BalanceOfTaxLossesBroughtForwardFromPriorYear.Amount
        /// </summary>
        public decimal? CGLS83 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.Uplift.Amount
        /// </summary>
        public decimal? CGLS104 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.TransferredFromJoiningEntitiesUnderSubdivision707A.Amount
        /// </summary>
        public decimal? CGLS85 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.TransferredWithNilAvailableFractionApplied.Amount
        /// </summary>
        public decimal? CGLS94 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.ForgivenDebtNet.Amount
        /// </summary>
        public decimal? CGLS86 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.Incurred.Amount
        /// </summary>
        public decimal? CGLS87 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.ConversionOfExcessFrankingOffsets.Amount
        /// </summary>
        public decimal? CGLS88 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.ExemptIncomeNet.Amount
        /// </summary>
        public decimal? CGLS89 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.Forgone.Amount
        /// </summary>
        public decimal? CGLS90 = null;

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

        /// <summary>
        /// RP:tns:Tax.Losses.TransferredOut.Amount
        /// </summary>
        public decimal? CGLS92 = null;

        /// <summary>
        /// RP:tns:Tax.Losses.CarriedForward.LaterIncomeYearsTotal.Amount
        /// </summary>
        public decimal? CGLS93 = null;
        public List<TRFRContext> TRFRContextCollection = null;
        public class TRFRContext
        {
    
            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;
    
            /// <summary>
            /// TRFR:tns:Identifiers.TaxFileNumber.Identifier
            /// </summary>
            public string CGLS14 = null;
    
            /// <summary>
            /// TRFR:tns:Tax.Losses.TransferredDeducted.Fraction
            /// </summary>
            public decimal? CGLS108 = null;
            public decimal? CGLS108Numerator = null;
            public decimal? CGLS108Denominator = null;
    
            /// <summary>
            /// TRFR:tns:Tax.Losses.TransferredDeducted.Amount
            /// </summary>
            public decimal? CGLS109 = null;
    
            /// <summary>
            /// TRFR:tns:Identifiers.TaxFileNumber.Identifier
            /// </summary>
            public string CGLS29 = null;
    
            /// <summary>
            /// TRFR:tns:Capital.Losses.TransferredApplied.Fraction
            /// </summary>
            public decimal? CGLS113 = null;
            public decimal? CGLS113Numerator = null;
            public decimal? CGLS113Denominator = null;
    
            /// <summary>
            /// TRFR:tns:Capital.Losses.TransferredApplied.Amount
            /// </summary>
            public decimal? CGLS114 = null;
        }
        public List<JEContext> JEContextCollection = null;
        public class JEContext
        {
    
            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;
    
            /// <summary>
            /// JE:tns:Identifiers.TaxFileNumber.Identifier
            /// </summary>
            public string CGLS37 = null;
    
            /// <summary>
            /// JE:tns:Tax.Losses.TransferredLossCancelledByHeadCompany.Amount
            /// </summary>
            public decimal? CGLS38 = null;
        }

        public string RPCOTPId = null;
        public bool RPCOTPExists = false;
        public int RPCOTPCount = 0;
        public int RPCOTPOccurrenceIndex = 0;
        public int RPCOTPLastOccurrenceIndex = 0;
        public string RPCOTPIdentifier = null;
        public string RPCOTPIdentifierScheme = null;
        public string RPCOTPIdentifierTFN = null;
        public DateTime? RPCOTPStartDate = null;
        public DateTime? RPCOTPEndDate = null;

        /// <summary>
        /// RPCOTP:tns:Tax.Losses.TransferredFromJoiningEntitiesIncludingHeadCompany.Amount
        /// </summary>
        public decimal? CGLS5 = null;

        /// <summary>
        /// RPCOTP:tns:Tax.Losses.TransferredFromJoiningEntitiesAfterConsolidation.Amount
        /// </summary>
        public decimal? CGLS8 = null;

        /// <summary>
        /// RPCOTP:tns:Capital.Losses.TransferredFromJoiningEntitiesIncludingHeadCompanyNet.Amount
        /// </summary>
        public decimal? CGLS20 = null;

        /// <summary>
        /// RPCOTP:tns:Capital.Losses.TransferredFromJoiningEntitiesAfterConsolidation.Amount
        /// </summary>
        public decimal? CGLS23 = null;

        public string RPCOTFId = null;
        public bool RPCOTFExists = false;
        public int RPCOTFCount = 0;
        public int RPCOTFOccurrenceIndex = 0;
        public int RPCOTFLastOccurrenceIndex = 0;
        public string RPCOTFIdentifier = null;
        public string RPCOTFIdentifierScheme = null;
        public string RPCOTFIdentifierTFN = null;
        public DateTime? RPCOTFStartDate = null;
        public DateTime? RPCOTFEndDate = null;

        /// <summary>
        /// RPCOTF:tns:Tax.Losses.TransferredFromJoiningEntitiesIncludingHeadCompany.Amount
        /// </summary>
        public decimal? CGLS6 = null;

        /// <summary>
        /// RPCOTF:tns:Tax.Losses.TransferredFromJoiningEntitiesAfterConsolidation.Amount
        /// </summary>
        public decimal? CGLS9 = null;

        /// <summary>
        /// RPCOTF:tns:Capital.Losses.TransferredFromJoiningEntitiesIncludingHeadCompanyNet.Amount
        /// </summary>
        public decimal? CGLS21 = null;

        /// <summary>
        /// RPCOTF:tns:Capital.Losses.TransferredFromJoiningEntitiesAfterConsolidation.Amount
        /// </summary>
        public decimal? CGLS24 = null;

        public string RPCOTTId = null;
        public bool RPCOTTExists = false;
        public int RPCOTTCount = 0;
        public int RPCOTTOccurrenceIndex = 0;
        public int RPCOTTLastOccurrenceIndex = 0;
        public string RPCOTTIdentifier = null;
        public string RPCOTTIdentifierScheme = null;
        public string RPCOTTIdentifierTFN = null;
        public DateTime? RPCOTTStartDate = null;
        public DateTime? RPCOTTEndDate = null;

        /// <summary>
        /// RPCOTT:tns:Tax.Losses.TransferredFromJoiningEntitiesIncludingHeadCompany.Amount
        /// </summary>
        public decimal? CGLS7 = null;

        /// <summary>
        /// RPCOTT:tns:Tax.Losses.TransferredFromJoiningEntitiesAfterConsolidation.Amount
        /// </summary>
        public decimal? CGLS10 = null;

        /// <summary>
        /// RPCOTT:tns:Capital.Losses.TransferredFromJoiningEntitiesIncludingHeadCompanyNet.Amount
        /// </summary>
        public decimal? CGLS22 = null;

        /// <summary>
        /// RPCOTT:tns:Capital.Losses.TransferredFromJoiningEntitiesAfterConsolidation.Amount
        /// </summary>
        public decimal? CGLS25 = null;

        public string RPGRPId = null;
        public bool RPGRPExists = false;
        public int RPGRPCount = 0;
        public int RPGRPOccurrenceIndex = 0;
        public int RPGRPLastOccurrenceIndex = 0;
        public string RPGRPIdentifier = null;
        public string RPGRPIdentifierScheme = null;
        public string RPGRPIdentifierTFN = null;
        public DateTime? RPGRPStartDate = null;
        public DateTime? RPGRPEndDate = null;

        /// <summary>
        /// RPGRP:tns:Tax.Losses.Deducted.Amount
        /// </summary>
        public decimal? CGLS105 = null;

        /// <summary>
        /// RPGRP:tns:Tax.Losses.CarriedForward.Total.Amount
        /// </summary>
        public decimal? CGLS17 = null;

        /// <summary>
        /// RPGRP:tns:Capital.Losses.AppliedNet.Amount
        /// </summary>
        public decimal? CGLS110 = null;

        public string RPTRFDId = null;
        public bool RPTRFDExists = false;
        public int RPTRFDCount = 0;
        public int RPTRFDOccurrenceIndex = 0;
        public int RPTRFDLastOccurrenceIndex = 0;
        public string RPTRFDIdentifier = null;
        public string RPTRFDIdentifierScheme = null;
        public string RPTRFDIdentifierTFN = null;
        public DateTime? RPTRFDStartDate = null;
        public DateTime? RPTRFDEndDate = null;

        /// <summary>
        /// RPTRFD:tns:Tax.Losses.Deducted.Amount
        /// </summary>
        public decimal? CGLS106 = null;

        /// <summary>
        /// RPTRFD:tns:Tax.Losses.CarriedForward.Total.Amount
        /// </summary>
        public decimal? CGLS18 = null;

        /// <summary>
        /// RPTRFD:tns:Capital.Losses.AppliedNet.Amount
        /// </summary>
        public decimal? CGLS111 = null;

        public string RPTOTId = null;
        public bool RPTOTExists = false;
        public int RPTOTCount = 0;
        public int RPTOTOccurrenceIndex = 0;
        public int RPTOTLastOccurrenceIndex = 0;
        public string RPTOTIdentifier = null;
        public string RPTOTIdentifierScheme = null;
        public string RPTOTIdentifierTFN = null;
        public DateTime? RPTOTStartDate = null;
        public DateTime? RPTOTEndDate = null;

        /// <summary>
        /// RPTOT:tns:Tax.Losses.Deducted.Amount
        /// </summary>
        public decimal? CGLS107 = null;

        /// <summary>
        /// RPTOT:tns:Tax.Losses.CarriedForward.Total.Amount
        /// </summary>
        public decimal? CGLS19 = null;

        /// <summary>
        /// RPTOT:tns:Capital.Losses.AppliedNet.Amount
        /// </summary>
        public decimal? CGLS112 = null;

        public string RPGRPInstantId = null;
        public bool RPGRPInstantExists = false;
        public int RPGRPInstantCount = 0;
        public int RPGRPInstantOccurrenceIndex = 0;
        public int RPGRPInstantLastOccurrenceIndex = 0;
        public string RPGRPInstantIdentifier = null;
        public string RPGRPInstantIdentifierScheme = null;
        public string RPGRPInstantIdentifierTFN = null;
        public DateTime? RPGRPInstantInstantDate = null;

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

        public string RPTRFDInstantId = null;
        public bool RPTRFDInstantExists = false;
        public int RPTRFDInstantCount = 0;
        public int RPTRFDInstantOccurrenceIndex = 0;
        public int RPTRFDInstantLastOccurrenceIndex = 0;
        public string RPTRFDInstantIdentifier = null;
        public string RPTRFDInstantIdentifierScheme = null;
        public string RPTRFDInstantIdentifierTFN = null;
        public DateTime? RPTRFDInstantInstantDate = null;

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

        public string RPTOTInstantId = null;
        public bool RPTOTInstantExists = false;
        public int RPTOTInstantCount = 0;
        public int RPTOTInstantOccurrenceIndex = 0;
        public int RPTOTInstantLastOccurrenceIndex = 0;
        public string RPTOTInstantIdentifier = null;
        public string RPTOTInstantIdentifierScheme = null;
        public string RPTOTInstantIdentifierTFN = null;
        public DateTime? RPTOTInstantInstantDate = null;

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

        public string RPY0Id = null;
        public bool RPY0Exists = false;
        public int RPY0Count = 0;
        public int RPY0OccurrenceIndex = 0;
        public int RPY0LastOccurrenceIndex = 0;
        public string RPY0Identifier = null;
        public string RPY0IdentifierScheme = null;
        public string RPY0IdentifierTFN = null;
        public DateTime? RPY0StartDate = null;
        public DateTime? RPY0EndDate = null;

        /// <summary>
        /// RPY0:tns:Tax.Losses.TransferredContinuityTestFail.Amount
        /// </summary>
        public decimal? CGLS39 = null;

        public string RPY0Minus1Id = null;
        public bool RPY0Minus1Exists = false;
        public int RPY0Minus1Count = 0;
        public int RPY0Minus1OccurrenceIndex = 0;
        public int RPY0Minus1LastOccurrenceIndex = 0;
        public string RPY0Minus1Identifier = null;
        public string RPY0Minus1IdentifierScheme = null;
        public string RPY0Minus1IdentifierTFN = null;
        public DateTime? RPY0Minus1StartDate = null;
        public DateTime? RPY0Minus1EndDate = null;

        /// <summary>
        /// RPY0Minus1:tns:Tax.Losses.TransferredContinuityTestFail.Amount
        /// </summary>
        public decimal? CGLS40 = null;

        public string RPY0Minus2Id = null;
        public bool RPY0Minus2Exists = false;
        public int RPY0Minus2Count = 0;
        public int RPY0Minus2OccurrenceIndex = 0;
        public int RPY0Minus2LastOccurrenceIndex = 0;
        public string RPY0Minus2Identifier = null;
        public string RPY0Minus2IdentifierScheme = null;
        public string RPY0Minus2IdentifierTFN = null;
        public DateTime? RPY0Minus2StartDate = null;
        public DateTime? RPY0Minus2EndDate = null;

        /// <summary>
        /// RPY0Minus2:tns:Tax.Losses.TransferredContinuityTestFail.Amount
        /// </summary>
        public decimal? CGLS41 = null;

        public string RPY0Minus3Id = null;
        public bool RPY0Minus3Exists = false;
        public int RPY0Minus3Count = 0;
        public int RPY0Minus3OccurrenceIndex = 0;
        public int RPY0Minus3LastOccurrenceIndex = 0;
        public string RPY0Minus3Identifier = null;
        public string RPY0Minus3IdentifierScheme = null;
        public string RPY0Minus3IdentifierTFN = null;
        public DateTime? RPY0Minus3StartDate = null;
        public DateTime? RPY0Minus3EndDate = null;

        /// <summary>
        /// RPY0Minus3:tns:Tax.Losses.TransferredContinuityTestFail.Amount
        /// </summary>
        public decimal? CGLS42 = null;

        public string RPY0Minus4PId = null;
        public bool RPY0Minus4PExists = false;
        public int RPY0Minus4PCount = 0;
        public int RPY0Minus4POccurrenceIndex = 0;
        public int RPY0Minus4PLastOccurrenceIndex = 0;
        public string RPY0Minus4PIdentifier = null;
        public string RPY0Minus4PIdentifierScheme = null;
        public string RPY0Minus4PIdentifierTFN = null;
        public DateTime? RPY0Minus4PStartDate = null;
        public DateTime? RPY0Minus4PEndDate = null;

        /// <summary>
        /// RPY0Minus4P:tns:Tax.Losses.TransferredContinuityTestFail.Amount
        /// </summary>
        public decimal? CGLS43 = null;

    }
}