function Data (options) {
            // Scope `this` to self
            var self = this;

            var mapping = {
                'Cloud_Service_Provider_Name': 'name',
                'Cloud_Service_Provider_Package': 'pkg',
                'Path': 'path',
                'Designation': 'designation',
                'Package_ID': 'pkgId',
                'Service_Model': 'serviceModel',
                'Deployment_Model': 'deploymentModel',
                'Impact_Level': 'impactLevel',
                'Original_Authorization_Date': 'authorizationDate',
                'Original_Expiration_Date': 'expirationDate',
                'Sponsoring_Agency': 'sponsoringAgency',
                'Sponsoring_Agency_Logo': 'sponsoringAgencyLogo',
                'Authorizing_Agency': 'authorizingAgency',
                'Authorizing_Subagency': 'authorizingSubagency',
                'CSP_URL': 'cspUrl',
                'Stage': 'stage',
                'Independent_Assessor': 'independentAssessor',
                'Underlying_CSP_Package_ID': 'underlyingCspPackages',
                'FedRAMP_Website_URL': 'fedrampWebsite',
                'CSP_Website': 'cspWebsite',
                'CSO_Description': 'csoDescription',
                'Expected_Compliance_Date': 'expectedCompliance',
                'Announcement_Date': 'compliantDate',
                'Fedramp_Ready_Date': 'fedrampReadyDate',
                'CSP_POC_Name': 'pocName',
                'CSP_POC_Email': 'pocEmail',
                'Leveraged_ATO_Letters': 'atoLetters',
                'FedRAMP_In-Process_Date': 'inProcessDate',
                'Agency_POC': 'agencyPocName',
                'Agency_POC_email': 'agencyPocEmail'
            };

            /**
             * Cloud service provider name
             * @member {string}
             * @memberof Models.Data
             */
            self.name = '';

            /**
             * Package name
             * @member {string}
             * @memberof Models.Data
             */
            self.pkg = '';

            /**
             * Package identifier
             * @member {string}
             * @memberof Models.Data
             */
            self.pkgId = '';

            /**
             * Path
             * @member {string}
             * @memberof Models.Data
             */
            self.path = '';

            /**
             * Designation
             * @member {string}
             * @memberof Models.Data
             */
            self.designation = '';

            /**
             * Service model
             * @member {array}
             * @memberof Models.Data
             */
            self.serviceModel = [];

            /**
             * Deployment model
             * @member {string}
             * @memberof Models.Data
             */
            self.deploymentModel = '';

            /**
             * Impact level
             * @member {string}
             * @memberof Models.Data
             */
            self.impactLevel = '';

            /**
             * Authorization date
             * @member {date}
             * @memberof Models.Data
             */
            self.authorizationDate = null;

            /**
             * Expiration date
             * @member {date}
             * @memberof Models.Data
             */
            self.expirationDate = null;

            /**
             * Sponsoring agency
             * @member {string}
             * @memberof Models.Data
             */
            self.sponsoringAgency = '';

            /**
             * The sponsoring agency logo
             * @member {string}
             * @memberof Models.Data
             */
            self.sponsoringAgencyLogo = '';

            /**
             * Authorizing agency
             * @member {string}
             * @memberof Models.Data
             */
            self.authorizingAgency = '';

            /**
             * Authorizing subagency
             * @member {string}
             * @memberof Models.Data
             */
            self.authorizingSubagency = '';

            /**
             * The CSP URL
             * @member {string}
             * @memberof Models.Data
             */
            self.cspUrl = '';

            /**
             * Stage in validation process
             * @member {string}
             * @memberof Models.Data
             */
            self.stage = '';

            /**
             * The independent assessor
             * @member {string}
             * @memberof Models.Data
             */
            self.independentAssessor = '';

            /**
             * Underlying CSP packages
             * @member {array}
             * @memberof Models.Data
             */
            self.underlyingCspPackages = [];

            /**
             * The FedRAMP website
             * @member {string}
             * @memberof Models.Data
             */
            self.fedrampWebsite = '';

            /**
             * The CSP website
             * @member {string}
             * @memberof Models.Data
             */
            self.cspWebsite = '';

            /**
             * The CSO package services description
             * @member {string}
             * @memberof Models.Data
             */
            self.csoDescription = '';

            /**
             * Date of expected compliance
             * @member {date}
             * @memberof Models.Data
             */
            self.expectedCompliance = null;

            /**
             * Date of announcement when compliant
             * @member {date}
             * @memberof Models.Data
             */
            self.compliantDate = null;

            /**
             * Date of FedRAMP Ready
             * @member {date}
             * @memberof Models.Data
             */
            self.fedrampReadyDate = null;

            /**
             * The product point of contact name
             * @member {string}
             * @memberof Models.Data
             */
            self.pocName = '';

            /**
             * The product point of contact email
             * @member {string}
             * @memberof Models.Data
             */
            self.pocEmail = '';

            /**
             * The product agency point of contact name
             * @member {string}
             * @memberof Models.Data
             */
            self.agencyPocName = '';

            /**
             * The product agency point of contact email
             * @member {string}
             * @memberof Models.Data
             */
            self.agencyPocEmail = '';

            /**
             * The product agency point of contact email
             * @member {string}
             * @memberof Models.Data
             */

            self.agencyPocEmail = '';
            /**
             * Leveraged ATO letters
             * @member {array}
             * @memberof Models.Data
             */
            self.atoLetters = [];

            /**
             * Date when cso became fedramp ready
             * @member {date}
             * @memberof Models.Data
             */
            self.fedrampReady = null;

            /**
             * Date when cso became in-process
             * @member {date}
             * @memberof Models.Data
             */
            self.inProcessDate = null;

            /**
             * Initialize the provider object.
             *
             * @param {object} options
             *  A dictionary of options to configure the provider
             *
             * @returns
             *  The provider
             */
            self.init = function (options) {
                if (!options) {
                    return;
                }

                for (var x in options) {
                    if (!options.hasOwnProperty(x)) {
                        continue;
                    }

                    var key = mapping[x];
                    var letter = null;
                    if (key) {
                        if (key === 'atoLetters') {
                            for (let i = 0; i < options[x].length; i++) {
                                self[key].push(new AtoLetter(options[x][i]));
                            }
                        } else {
                            self[key] = options[x];
                        }
                    } else {
                        if (self.hasOwnProperty(x)) {
                            if (x === 'atoLetters') {
                                for (let i = 0; i < options[x].length; i++) {
                                    self[x].push(new AtoLetter(options[x][i]));
                                }
                            } else {
                                self[x] = options[x];
                            }
                        }
                    }
                }

                return self;
            };

            /**
             * Get a unique hash or identifier for the provider.
             * @public
             * @memberof Models.Data
             *
             * @returns
             *  The hash
             */
            self.hash = function () {
                var id = '' + self.name + self.pkg + self.pkgId + self.sponsoringAgency;
                if (id.length === 0) {
                    return null;
                }
                return id;
            };

            return self.init(options);
        }
/**
         * The raw data model with opinionated transformations
         * @constructor
         * @memberof Models
         */
The raw data model with opinionated transformations
@constructor
@memberof Models
The raw data model with opinionated transformations @constructor @memberof Models
function Data (options) {
            var self = this;
            var mapping = {
                'Cloud_Service_Provider_Name': 'name',
                'Cloud_Service_Provider_Package': 'pkg',
                'Path': 'path',
                'Designation': 'designation',
                'Package_ID': 'pkgId',
                'Service_Model': 'serviceModel',
                'Deployment_Model': 'deploymentModel',
                'Impact_Level': 'impactLevel',
                'Original_Authorization_Date': 'authorizationDate',
                'Original_Expiration_Date': 'expirationDate',
                'Sponsoring_Agency': 'sponsoringAgency',
                'Sponsoring_Agency_Logo': 'sponsoringAgencyLogo',
                'Authorizing_Agency': 'authorizingAgency',
                'Authorizing_Subagency': 'authorizingSubagency',
                'CSP_URL': 'cspUrl',
                'Stage': 'stage',
                'Independent_Assessor': 'independentAssessor',
                'Underlying_CSP_Package_ID': 'underlyingCspPackages',
                'FedRAMP_Website_URL': 'fedrampWebsite',
                'CSP_Website': 'cspWebsite',
                'CSO_Description': 'csoDescription',
                'Expected_Compliance_Date': 'expectedCompliance',
                'Announcement_Date': 'compliantDate',
                'Fedramp_Ready_Date': 'fedrampReadyDate',
                'CSP_POC_Name': 'pocName',
                'CSP_POC_Email': 'pocEmail',
                'Leveraged_ATO_Letters': 'atoLetters',
                'FedRAMP_In-Process_Date': 'inProcessDate',
                'Agency_POC': 'agencyPocName',
                'Agency_POC_email': 'agencyPocEmail'
            };
            self.name = '';
            self.pkg = '';
            self.pkgId = '';
            self.path = '';
            self.designation = '';
            self.serviceModel = [];
            self.deploymentModel = '';
            self.impactLevel = '';
            self.authorizationDate = null;
            self.expirationDate = null;
            self.sponsoringAgency = '';
            self.sponsoringAgencyLogo = '';
            self.authorizingAgency = '';
            self.authorizingSubagency = '';
            self.cspUrl = '';
            self.stage = '';
            self.independentAssessor = '';
            self.underlyingCspPackages = [];
            self.fedrampWebsite = '';
            self.cspWebsite = '';
            self.csoDescription = '';
            self.expectedCompliance = null;
            self.compliantDate = null;
            self.fedrampReadyDate = null;
            self.pocName = '';
            self.pocEmail = '';
            self.agencyPocName = '';
            self.agencyPocEmail = '';
            self.agencyPocEmail = '';
            self.atoLetters = [];
            self.fedrampReady = null;
            self.inProcessDate = null;
            self.init = function (options) {
                if (!options) {
                    return;
                }
                for (var x in options) {
                    if (!options.hasOwnProperty(x)) {
                        continue;
                    }
                    var key = mapping[x];
                    var letter = null;
                    if (key) {
                        if (key === 'atoLetters') {
                            for (let i = 0; i < options[x].length; i++) {
                                self[key].push(new AtoLetter(options[x][i]));
                            }
                        } else {
                            self[key] = options[x];
                        }
                    } else {
                        if (self.hasOwnProperty(x)) {
                            if (x === 'atoLetters') {
                                for (let i = 0; i < options[x].length; i++) {
                                    self[x].push(new AtoLetter(options[x][i]));
                                }
                            } else {
                                self[x] = options[x];
                            }
                        }
                    }
                }
                return self;
            };
            self.hash = function () {
                var id = '' + self.name + self.pkg + self.pkgId + self.sponsoringAgency;
                if (id.length === 0) {
                    return null;
                }
                return id;
            };
            return self.init(options);
        }
function Data ( options ) { var self = this ; var mapping = { 'Cloud_Service_Provider_Name' : 'name' , 'Cloud_Service_Provider_Package' : 'pkg' , 'Path' : 'path' , 'Designation' : 'designation' , 'Package_ID' : 'pkgId' , 'Service_Model' : 'serviceModel' , 'Deployment_Model' : 'deploymentModel' , 'Impact_Level' : 'impactLevel' , 'Original_Authorization_Date' : 'authorizationDate' , 'Original_Expiration_Date' : 'expirationDate' , 'Sponsoring_Agency' : 'sponsoringAgency' , 'Sponsoring_Agency_Logo' : 'sponsoringAgencyLogo' , 'Authorizing_Agency' : 'authorizingAgency' , 'Authorizing_Subagency' : 'authorizingSubagency' , 'CSP_URL' : 'cspUrl' , 'Stage' : 'stage' , 'Independent_Assessor' : 'independentAssessor' , 'Underlying_CSP_Package_ID' : 'underlyingCspPackages' , 'FedRAMP_Website_URL' : 'fedrampWebsite' , 'CSP_Website' : 'cspWebsite' , 'CSO_Description' : 'csoDescription' , 'Expected_Compliance_Date' : 'expectedCompliance' , 'Announcement_Date' : 'compliantDate' , 'Fedramp_Ready_Date' : 'fedrampReadyDate' , 'CSP_POC_Name' : 'pocName' , 'CSP_POC_Email' : 'pocEmail' , 'Leveraged_ATO_Letters' : 'atoLetters' , 'FedRAMP_In-Process_Date' : 'inProcessDate' , 'Agency_POC' : 'agencyPocName' , 'Agency_POC_email' : 'agencyPocEmail' } ; self . name = '' ; self . pkg = '' ; self . pkgId = '' ; self . path = '' ; self . designation = '' ; self . serviceModel = [ ] ; self . deploymentModel = '' ; self . impactLevel = '' ; self . authorizationDate = null ; self . expirationDate = null ; self . sponsoringAgency = '' ; self . sponsoringAgencyLogo = '' ; self . authorizingAgency = '' ; self . authorizingSubagency = '' ; self . cspUrl = '' ; self . stage = '' ; self . independentAssessor = '' ; self . underlyingCspPackages = [ ] ; self . fedrampWebsite = '' ; self . cspWebsite = '' ; self . csoDescription = '' ; self . expectedCompliance = null ; self . compliantDate = null ; self . fedrampReadyDate = null ; self . pocName = '' ; self . pocEmail = '' ; self . agencyPocName = '' ; self . agencyPocEmail = '' ; self . agencyPocEmail = '' ; self . atoLetters = [ ] ; self . fedrampReady = null ; self . inProcessDate = null ; self . init = function ( options ) { if ( ! options ) { return ; } for ( var x in options ) { if ( ! options . hasOwnProperty ( x ) ) { continue ; } var key = mapping [ x ] ; var letter = null ; if ( key ) { if ( key === 'atoLetters' ) { for ( let i = 0 ; i < options [ x ] . length ; i ++ ) { self [ key ] . push ( new AtoLetter ( options [ x ] [ i ] ) ) ; } } else { self [ key ] = options [ x ] ; } } else { if ( self . hasOwnProperty ( x ) ) { if ( x === 'atoLetters' ) { for ( let i = 0 ; i < options [ x ] . length ; i ++ ) { self [ x ] . push ( new AtoLetter ( options [ x ] [ i ] ) ) ; } } else { self [ x ] = options [ x ] ; } } } } return self ; } ; self . hash = function ( ) { var id = '' + self . name + self . pkg + self . pkgId + self . sponsoringAgency ; if ( id . length === 0 ) { return null ; } return id ; } ; return self . init ( options ) ; }
The raw data model with opinionated transformations
 @constructor
 @memberof Models
The raw data model with opinionated transformations @constructor @memberof Models
// Scope `this` to self /**
             * Cloud service provider name
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Package name
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Package identifier
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Path
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Designation
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Service model
             * @member {array}
             * @memberof Models.Data
             */ /**
             * Deployment model
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Impact level
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Authorization date
             * @member {date}
             * @memberof Models.Data
             */ /**
             * Expiration date
             * @member {date}
             * @memberof Models.Data
             */ /**
             * Sponsoring agency
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The sponsoring agency logo
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Authorizing agency
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Authorizing subagency
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The CSP URL
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Stage in validation process
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The independent assessor
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Underlying CSP packages
             * @member {array}
             * @memberof Models.Data
             */ /**
             * The FedRAMP website
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The CSP website
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The CSO package services description
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Date of expected compliance
             * @member {date}
             * @memberof Models.Data
             */ /**
             * Date of announcement when compliant
             * @member {date}
             * @memberof Models.Data
             */ /**
             * Date of FedRAMP Ready
             * @member {date}
             * @memberof Models.Data
             */ /**
             * The product point of contact name
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The product point of contact email
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The product agency point of contact name
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The product agency point of contact email
             * @member {string}
             * @memberof Models.Data
             */ /**
             * The product agency point of contact email
             * @member {string}
             * @memberof Models.Data
             */ /**
             * Leveraged ATO letters
             * @member {array}
             * @memberof Models.Data
             */ /**
             * Date when cso became fedramp ready
             * @member {date}
             * @memberof Models.Data
             */ /**
             * Date when cso became in-process
             * @member {date}
             * @memberof Models.Data
             */ /**
             * Initialize the provider object.
             *
             * @param {object} options
             *  A dictionary of options to configure the provider
             *
             * @returns
             *  The provider
             */ /**
             * Get a unique hash or identifier for the provider.
             * @public
             * @memberof Models.Data
             *
             * @returns
             *  The hash
             */