diff --git a/Redfish.md b/Redfish.md
index 689b586..6036e8a 100644
--- a/Redfish.md
+++ b/Redfish.md
@@ -83,6 +83,13 @@
 - Members
 - Members@odata.count
 
+### /redfish/v1/AggregationService/AggregationSources/{AggregationSourceId}
+
+#### AggregationSource
+
+- HostName
+- Password
+
 ### /redfish/v1/AccountService/Accounts/
 
 #### ManagerAccountCollection
diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index 954dfc7..cf41824 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -73,8 +73,9 @@
     {
         requestAccountServiceRoutes(app);
 #ifdef BMCWEB_ENABLE_REDFISH_AGGREGATION
-        requestAggregationServiceRoutes(app);
-        requestAggregationSourcesRoutes(app);
+        requestRoutesAggregationService(app);
+        requestRoutesAggregationSourceCollection(app);
+        requestRoutesAggregationSource(app);
 #endif
         requestRoutesRoles(app);
         requestRoutesRoleCollection(app);
diff --git a/redfish-core/include/redfish_aggregator.hpp b/redfish-core/include/redfish_aggregator.hpp
index de51ca6..85c1c15 100644
--- a/redfish-core/include/redfish_aggregator.hpp
+++ b/redfish-core/include/redfish_aggregator.hpp
@@ -239,55 +239,20 @@
     // Dummy callback used by the Constructor so that it can report the number
     // of satellite configs when the class is first created
     static void constructorCallback(
+        const boost::system::error_code& ec,
         const std::unordered_map<std::string, boost::urls::url>& satelliteInfo)
     {
+        if (ec)
+        {
+            BMCWEB_LOG_ERROR << "Something went wrong while querying dbus!";
+            return;
+        }
+
         BMCWEB_LOG_DEBUG << "There were "
                          << std::to_string(satelliteInfo.size())
                          << " satellite configs found at startup";
     }
 
-    // Polls D-Bus to get all available satellite config information
-    // Expects a handler which interacts with the returned configs
-    static void getSatelliteConfigs(
-        const std::function<void(
-            const std::unordered_map<std::string, boost::urls::url>&)>& handler)
-    {
-        BMCWEB_LOG_DEBUG << "Gathering satellite configs";
-        crow::connections::systemBus->async_method_call(
-            [handler](const boost::system::error_code& ec,
-                      const dbus::utility::ManagedObjectType& objects) {
-            if (ec)
-            {
-                BMCWEB_LOG_ERROR << "DBUS response error " << ec.value() << ", "
-                                 << ec.message();
-                return;
-            }
-
-            // Maps a chosen alias representing a satellite BMC to a url
-            // containing the information required to create a http
-            // connection to the satellite
-            std::unordered_map<std::string, boost::urls::url> satelliteInfo;
-
-            findSatelliteConfigs(objects, satelliteInfo);
-
-            if (!satelliteInfo.empty())
-            {
-                BMCWEB_LOG_DEBUG << "Redfish Aggregation enabled with "
-                                 << std::to_string(satelliteInfo.size())
-                                 << " satellite BMCs";
-            }
-            else
-            {
-                BMCWEB_LOG_DEBUG
-                    << "No satellite BMCs detected.  Redfish Aggregation not enabled";
-            }
-            handler(satelliteInfo);
-            },
-            "xyz.openbmc_project.EntityManager",
-            "/xyz/openbmc_project/inventory",
-            "org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
-    }
-
     // Search D-Bus objects for satellite config objects and add their
     // information if valid
     static void findSatelliteConfigs(
@@ -492,12 +457,19 @@
         AggregationType isCollection,
         const std::shared_ptr<crow::Request>& sharedReq,
         const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+        const boost::system::error_code& ec,
         const std::unordered_map<std::string, boost::urls::url>& satelliteInfo)
     {
         if (sharedReq == nullptr)
         {
             return;
         }
+        // Something went wrong while querying dbus
+        if (ec)
+        {
+            messages::internalError(asyncResp->res);
+            return;
+        }
 
         // No satellite configs means we don't need to keep attempting to
         // aggregate
@@ -631,6 +603,51 @@
         return handler;
     }
 
+    // Polls D-Bus to get all available satellite config information
+    // Expects a handler which interacts with the returned configs
+    static void getSatelliteConfigs(
+        std::function<
+            void(const boost::system::error_code&,
+                 const std::unordered_map<std::string, boost::urls::url>&)>
+            handler)
+    {
+        BMCWEB_LOG_DEBUG << "Gathering satellite configs";
+        crow::connections::systemBus->async_method_call(
+            [handler{std::move(handler)}](
+                const boost::system::error_code& ec,
+                const dbus::utility::ManagedObjectType& objects) {
+            std::unordered_map<std::string, boost::urls::url> satelliteInfo;
+            if (ec)
+            {
+                BMCWEB_LOG_ERROR << "DBUS response error " << ec.value() << ", "
+                                 << ec.message();
+                handler(ec, satelliteInfo);
+                return;
+            }
+
+            // Maps a chosen alias representing a satellite BMC to a url
+            // containing the information required to create a http
+            // connection to the satellite
+            findSatelliteConfigs(objects, satelliteInfo);
+
+            if (!satelliteInfo.empty())
+            {
+                BMCWEB_LOG_DEBUG << "Redfish Aggregation enabled with "
+                                 << std::to_string(satelliteInfo.size())
+                                 << " satellite BMCs";
+            }
+            else
+            {
+                BMCWEB_LOG_DEBUG
+                    << "No satellite BMCs detected.  Redfish Aggregation not enabled";
+            }
+            handler(ec, satelliteInfo);
+            },
+            "xyz.openbmc_project.EntityManager",
+            "/xyz/openbmc_project/inventory",
+            "org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
+    }
+
     // Processes the response returned by a satellite BMC and loads its
     // contents into asyncResp
     static void
@@ -863,7 +880,11 @@
             {
                 // We've matched a resource collection so this current segment
                 // might contain an aggregation prefix
-                if (collectionItem.starts_with("5B247A"))
+                // TODO: This needs to be rethought when we can support multiple
+                // satellites due to
+                // /redfish/v1/AggregationService/AggregationSources/5B247A
+                // being a local resource describing the satellite
+                if (collectionItem.starts_with("5B247A_"))
                 {
                     BMCWEB_LOG_DEBUG << "Need to forward a request";
 
diff --git a/redfish-core/include/schemas.hpp b/redfish-core/include/schemas.hpp
index c2cbb8b..8dd2d7b 100644
--- a/redfish-core/include/schemas.hpp
+++ b/redfish-core/include/schemas.hpp
@@ -18,6 +18,7 @@
         "AccountService",
         "ActionInfo",
         "AggregationService",
+        "AggregationSource",
         "AggregationSourceCollection",
         "Assembly",
         "AttributeRegistry",
diff --git a/redfish-core/lib/aggregation_service.hpp b/redfish-core/lib/aggregation_service.hpp
index f0eb651..1cd2e68 100644
--- a/redfish-core/lib/aggregation_service.hpp
+++ b/redfish-core/lib/aggregation_service.hpp
@@ -5,6 +5,7 @@
 #include "http_request.hpp"
 #include "http_response.hpp"
 #include "query.hpp"
+#include "redfish_aggregator.hpp"
 #include "registries/privilege_registry.hpp"
 
 #include <nlohmann/json.hpp>
@@ -50,7 +51,7 @@
         "/redfish/v1/AggregationService/AggregationSources";
 }
 
-inline void requestAggregationServiceRoutes(App& app)
+inline void requestRoutesAggregationService(App& app)
 {
     BMCWEB_ROUTE(app, "/redfish/v1/AggregationService/")
         .privileges(redfish::privileges::headAggregationService)
@@ -62,7 +63,31 @@
             std::bind_front(handleAggregationServiceGet, std::ref(app)));
 }
 
-inline void handleAggregationSourcesGet(
+inline void populateAggregationSourceCollection(
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const boost::system::error_code ec,
+    const std::unordered_map<std::string, boost::urls::url>& satelliteInfo)
+{
+    // Something went wrong while querying dbus
+    if (ec)
+    {
+        messages::internalError(asyncResp->res);
+        return;
+    }
+    nlohmann::json::array_t members = nlohmann::json::array();
+    for (const auto& sat : satelliteInfo)
+    {
+        nlohmann::json::object_t member;
+        member["@odata.id"] =
+            crow::utility::urlFromPieces("redfish", "v1", "AggregationService",
+                                         "AggregationSources", sat.first);
+        members.push_back(std::move(member));
+    }
+    asyncResp->res.jsonValue["Members@odata.count"] = members.size();
+    asyncResp->res.jsonValue["Members"] = std::move(members);
+}
+
+inline void handleAggregationSourceCollectionGet(
     App& app, const crow::Request& req,
     const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
 {
@@ -78,18 +103,124 @@
     json["@odata.type"] =
         "#AggregationSourceCollection.AggregationSourceCollection";
     json["Name"] = "Aggregation Source Collection";
-    json["Members"] = nlohmann::json::array();
-    json["Members@odata.count"] = 0;
 
-    // TODO: Query D-Bus for satellite configs and add them to the Members array
+    // Query D-Bus for satellite configs and add them to the Members array
+    RedfishAggregator::getSatelliteConfigs(
+        std::bind_front(populateAggregationSourceCollection, asyncResp));
 }
 
-inline void requestAggregationSourcesRoutes(App& app)
+inline void handleAggregationSourceCollectionHead(
+    App& app, const crow::Request& req,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+{
+    if (!redfish::setUpRedfishRoute(app, req, asyncResp))
+    {
+        return;
+    }
+    asyncResp->res.addHeader(
+        boost::beast::http::field::link,
+        "</redfish/v1/JsonSchemas/AggregationService/AggregationSourceCollection.json>; rel=describedby");
+}
+
+inline void requestRoutesAggregationSourceCollection(App& app)
 {
     BMCWEB_ROUTE(app, "/redfish/v1/AggregationService/AggregationSources/")
-        .privileges(redfish::privileges::getAggregationService)
+        .privileges(redfish::privileges::getAggregationSourceCollection)
+        .methods(boost::beast::http::verb::get)(std::bind_front(
+            handleAggregationSourceCollectionGet, std::ref(app)));
+
+    BMCWEB_ROUTE(app, "/redfish/v1/AggregationService/AggregationSources/")
+        .privileges(redfish::privileges::getAggregationSourceCollection)
+        .methods(boost::beast::http::verb::head)(std::bind_front(
+            handleAggregationSourceCollectionHead, std::ref(app)));
+}
+
+inline void populateAggregationSource(
+    const std::string& aggregationSourceId,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const boost::system::error_code ec,
+    const std::unordered_map<std::string, boost::urls::url>& satelliteInfo)
+{
+    asyncResp->res.addHeader(
+        boost::beast::http::field::link,
+        "</redfish/v1/JsonSchemas/AggregationSource/AggregationSource.json>; rel=describedby");
+
+    // Something went wrong while querying dbus
+    if (ec)
+    {
+        messages::internalError(asyncResp->res);
+        return;
+    }
+
+    const auto& sat = satelliteInfo.find(aggregationSourceId);
+    if (sat == satelliteInfo.end())
+    {
+        messages::resourceNotFound(asyncResp->res, "AggregationSource",
+                                   aggregationSourceId);
+        return;
+    }
+
+    asyncResp->res.jsonValue["@odata.id"] =
+        crow::utility::urlFromPieces("redfish", "v1", "AggregationService",
+                                     "AggregationSources", aggregationSourceId);
+    asyncResp->res.jsonValue["@odata.type"] =
+        "#AggregationSource.v1_3_1.AggregationSource";
+    asyncResp->res.jsonValue["Id"] = aggregationSourceId;
+
+    // TODO: We may want to change this whenever we support aggregating multiple
+    // satellite BMCs.  Otherwise all AggregationSource resources will have the
+    // same "Name".
+    // TODO: We should use the "Name" from the satellite config whenever we add
+    // support for including it in the data returned in satelliteInfo.
+    asyncResp->res.jsonValue["Name"] = "Aggregation source";
+    std::string hostName(sat->second.encoded_origin());
+    asyncResp->res.jsonValue["HostName"] = std::move(hostName);
+
+    // The Redfish spec requires Password to be null in responses
+    asyncResp->res.jsonValue["Password"] = nullptr;
+}
+
+inline void handleAggregationSourceGet(
+    App& app, const crow::Request& req,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const std::string& aggregationSourceId)
+{
+    if (!redfish::setUpRedfishRoute(app, req, asyncResp))
+    {
+        return;
+    }
+
+    // Query D-Bus for satellite config corresponding to the specified
+    // AggregationSource
+    RedfishAggregator::getSatelliteConfigs(std::bind_front(
+        populateAggregationSource, aggregationSourceId, asyncResp));
+}
+
+inline void handleAggregationSourceHead(
+    App& app, const crow::Request& req,
+    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+    const std::string& aggregationSourceId)
+{
+    if (!redfish::setUpRedfishRoute(app, req, asyncResp))
+    {
+        return;
+    }
+    asyncResp->res.addHeader(
+        boost::beast::http::field::link,
+        "</redfish/v1/JsonSchemas/AggregationService/AggregationSource.json>; rel=describedby");
+
+    // Needed to prevent unused variable error
+    BMCWEB_LOG_DEBUG << "Added link header to response from "
+                     << aggregationSourceId;
+}
+
+inline void requestRoutesAggregationSource(App& app)
+{
+    BMCWEB_ROUTE(app,
+                 "/redfish/v1/AggregationService/AggregationSources/<str>/")
+        .privileges(redfish::privileges::getAggregationSource)
         .methods(boost::beast::http::verb::get)(
-            std::bind_front(handleAggregationSourcesGet, std::ref(app)));
+            std::bind_front(handleAggregationSourceGet, std::ref(app)));
 }
 
 } // namespace redfish
diff --git a/scripts/update_schemas.py b/scripts/update_schemas.py
index a27c156..474c268 100755
--- a/scripts/update_schemas.py
+++ b/scripts/update_schemas.py
@@ -28,6 +28,7 @@
     "AccountService",
     "ActionInfo",
     "AggregationService",
+    "AggregationSource",
     "AggregationSourceCollection",
     "Assembly",
     "AttributeRegistry",
diff --git a/static/redfish/v1/$metadata/index.xml b/static/redfish/v1/$metadata/index.xml
index 92bcc09..72abbf1 100644
--- a/static/redfish/v1/$metadata/index.xml
+++ b/static/redfish/v1/$metadata/index.xml
@@ -118,6 +118,17 @@
         <edmx:Include Namespace="AggregationService.v1_0_0"/>
         <edmx:Include Namespace="AggregationService.v1_0_1"/>
     </edmx:Reference>
+    <edmx:Reference Uri="/redfish/v1/schema/AggregationSource_v1.xml">
+        <edmx:Include Namespace="AggregationSource"/>
+        <edmx:Include Namespace="AggregationSource.v1_0_0"/>
+        <edmx:Include Namespace="AggregationSource.v1_0_1"/>
+        <edmx:Include Namespace="AggregationSource.v1_1_0"/>
+        <edmx:Include Namespace="AggregationSource.v1_1_1"/>
+        <edmx:Include Namespace="AggregationSource.v1_2_0"/>
+        <edmx:Include Namespace="AggregationSource.v1_2_1"/>
+        <edmx:Include Namespace="AggregationSource.v1_3_0"/>
+        <edmx:Include Namespace="AggregationSource.v1_3_1"/>
+    </edmx:Reference>
     <edmx:Reference Uri="/redfish/v1/schema/AggregationSourceCollection_v1.xml">
         <edmx:Include Namespace="AggregationSourceCollection"/>
     </edmx:Reference>
diff --git a/static/redfish/v1/JsonSchemas/AggregationSource/AggregationSource.json b/static/redfish/v1/JsonSchemas/AggregationSource/AggregationSource.json
new file mode 100644
index 0000000..7d7295b
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/AggregationSource/AggregationSource.json
@@ -0,0 +1,656 @@
+{
+    "$id": "http://redfish.dmtf.org/schemas/v1/AggregationSource.v1_3_1.json",
+    "$ref": "#/definitions/AggregationSource",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
+    "copyright": "Copyright 2014-2022 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#AggregationSource.GenerateSSHIdentityKeyPair": {
+                    "$ref": "#/definitions/GenerateSSHIdentityKeyPair"
+                },
+                "#AggregationSource.RemoveSSHIdentityKeyPair": {
+                    "$ref": "#/definitions/RemoveSSHIdentityKeyPair"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions",
+                    "description": "The available OEM-specific actions for this resource.",
+                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
+                }
+            },
+            "type": "object"
+        },
+        "AggregationSource": {
+            "additionalProperties": false,
+            "description": "The AggregationSource schema is used to represent the source of information for a subset of the resources provided by a Redfish service.  It can be thought of as a provider of information.  As such, most such interfaces have requirements to support the gathering of information like address and account used to access the information.",
+            "longDescription": "This resource shall represent an aggregation source for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "This property shall contain the available actions for this resource."
+                },
+                "AggregationType": {
+                    "$ref": "#/definitions/AggregationType",
+                    "description": "The type of aggregation used towards the aggregation source.",
+                    "longDescription": "This property shall contain the type of aggregation used for the connection method towards the aggregation source.  If this property is not present, the value shall be assumed to be `Full`.",
+                    "readonly": false,
+                    "versionAdded": "v1_2_0"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "HostName": {
+                    "description": "The URI of the system to be accessed.",
+                    "format": "uri-reference",
+                    "longDescription": "This property shall contain the URI of the system to be aggregated.  This property shall not be required when the aggregation source is configured to only receive notifications from the aggregated system and the AggregationType property contains the value `NotificationsOnly`.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "The links to other resources that are related to this resource.",
+                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "The OEM extension property.",
+                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
+                },
+                "Password": {
+                    "description": "The password for accessing the aggregation source.  The value is `null` in responses.",
+                    "longDescription": "This property shall contain a password for accessing the aggregation source.  The value shall be `null` in responses.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "writeOnly ": true
+                },
+                "SNMP": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SNMPSettings"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "SNMP settings of the aggregation source.",
+                    "longDescription": "This property shall contain the SNMP settings of the aggregation source.",
+                    "versionAdded": "v1_1_0"
+                },
+                "SSHSettings": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SSHSettingsType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Settings for an aggregation source using SSH as part of the associated connection method.",
+                    "longDescription": "This property shall contain the settings for an aggregation source using SSH as part of the associated connection method.",
+                    "versionAdded": "v1_3_0"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
+                    "description": "The status and health of the resource and its subordinate or dependent resources.",
+                    "longDescription": "This property shall contain any status or health properties of the resource.",
+                    "versionAdded": "v1_3_0"
+                },
+                "UserName": {
+                    "description": "The user name for accessing the aggregation source.",
+                    "longDescription": "This property shall contain the user name for accessing the aggregation source.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "@odata.id",
+                "@odata.type",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "AggregationType": {
+            "enum": [
+                "NotificationsOnly",
+                "Full"
+            ],
+            "enumDescriptions": {
+                "Full": "Full aggregation according to connection method.",
+                "NotificationsOnly": "Only notifications are aggregated."
+            },
+            "enumLongDescriptions": {
+                "Full": "This value shall indicate that the aggregator is performing full aggregation according to the connection method without any limitation such as only receiving notifications.",
+                "NotificationsOnly": "This value shall indicate that the aggregator is only aggregating notifications or events from the aggregation source according to the connection method used.  This value shall not be used with connection methods that do not include notifications."
+            },
+            "type": "string"
+        },
+        "ECDSACurveType": {
+            "enum": [
+                "NISTP256",
+                "NISTP384",
+                "NISTP521",
+                "NISTK163",
+                "NISTP192",
+                "NISTP224",
+                "NISTK233",
+                "NISTB233",
+                "NISTK283",
+                "NISTK409",
+                "NISTB409",
+                "NISTT571"
+            ],
+            "enumDescriptions": {
+                "NISTB233": "NIST B-233.",
+                "NISTB409": "NIST B-409.",
+                "NISTK163": "NIST K-163.",
+                "NISTK233": "NIST K-233.",
+                "NISTK283": "NIST K-283.",
+                "NISTK409": "NIST K-409.",
+                "NISTP192": "NIST P-192.",
+                "NISTP224": "NIST P-224.",
+                "NISTP256": "NIST P-256.",
+                "NISTP384": "NIST P-384.",
+                "NISTP521": "NIST P-521.",
+                "NISTT571": "NIST T-571."
+            },
+            "enumLongDescriptions": {
+                "NISTB233": "This value shall indicate the 'nistb233' curve in RFC5656.",
+                "NISTB409": "This value shall indicate the 'nistb409' curve in RFC5656.",
+                "NISTK163": "This value shall indicate the 'nistk163' curve in RFC5656.",
+                "NISTK233": "This value shall indicate the 'nistk233' curve in RFC5656.",
+                "NISTK283": "This value shall indicate the 'nistk283' curve in RFC5656.",
+                "NISTK409": "This value shall indicate the 'nistk409' curve in RFC5656.",
+                "NISTP192": "This value shall indicate the 'nistp192' curve in RFC5656.",
+                "NISTP224": "This value shall indicate the 'nistp224' curve in RFC5656.",
+                "NISTP256": "This value shall indicate the 'nistp256' curve in RFC5656.",
+                "NISTP384": "This value shall indicate the 'nistp384' curve in RFC5656.",
+                "NISTP521": "This value shall indicate the 'nistp521' curve in RFC5656.",
+                "NISTT571": "This value shall indicate the 'nistt571' curve in RFC5656."
+            },
+            "type": "string"
+        },
+        "GenerateSSHIdentityKeyPair": {
+            "additionalProperties": false,
+            "description": "This action generates a new SSH identity key-pair to be used with this aggregation source.  The generated public key is stored in the Key resource referenced by the PublicIdentityKey property in SSHSettings.  Any existing key-pair is deleted and replace by the new key-pair.",
+            "longDescription": "This action shall generate a new SSH identity key-pair to be used with this aggregation source.  The service shall store the generated public key in the Key resource referenced by the PublicIdentityKey property in SSHSettings.  If the aggregation source already has an associated SSH identity key-pair, the service shall delete the key-pair and replace it with the new key-pair.",
+            "parameters": {
+                "Curve": {
+                    "$ref": "#/definitions/ECDSACurveType",
+                    "description": "The curve to use with the SSH key if the KeyType parameter contains `ECDSA`.",
+                    "longDescription": "This parameter shall contain the curve to use with the SSH key.  This parameter shall be required if the KeyType parameter contains `ECDSA` and rejected for other values."
+                },
+                "KeyLength": {
+                    "description": "The length of the SSH key, in bits, if the KeyType parameter contains `RSA`.",
+                    "longDescription": "This parameter shall contain the length of the SSH key, in bits.  This parameter shall be required if the KeyType parameter contains `RSA` and rejected for other values.",
+                    "type": "integer"
+                },
+                "KeyType": {
+                    "$ref": "#/definitions/SSHKeyType",
+                    "description": "The type of SSH key.",
+                    "longDescription": "This parameter shall contain the type of SSH key.",
+                    "requiredParameter": true
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri-reference",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object",
+            "versionAdded": "v1_3_0"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "The links to other resources that are related to this resource.",
+            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ConnectionMethod": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/ConnectionMethod.json#/definitions/ConnectionMethod"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "An array of links to the connection methods used to contact this aggregation source.",
+                    "longDescription": "This property shall contain an array of links to resources of type ConnectionMethod that are used to connect to the aggregation source.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "The OEM extension property.",
+                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
+                },
+                "ResourcesAccessed": {
+                    "description": "An array links to the resources added to the service through this aggregation source.  It is recommended that this be the minimal number of properties needed to find the resources that would be lost when the aggregation source is deleted.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
+                    },
+                    "longDescription": "This property shall contain an array of links to the resources added to the service through the aggregation source.  It is recommended that this be the minimal number of properties needed to find the resources that would be lost when the aggregation source is deleted.  For example, this could be the pointers to the members of the root level collections or the manager of a BMC.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ResourcesAccessed@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM-specific actions for this resource.",
+            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "RemoveSSHIdentityKeyPair": {
+            "additionalProperties": false,
+            "description": "This action removes the SSH identity key-pair used with this aggregation source.",
+            "longDescription": "This action shall remove the private SSH identity key-pair used with this aggregation source.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri-reference",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object",
+            "versionAdded": "v1_3_0"
+        },
+        "SNMPAuthenticationProtocols": {
+            "enum": [
+                "None",
+                "CommunityString",
+                "HMAC_MD5",
+                "HMAC_SHA96",
+                "HMAC128_SHA224",
+                "HMAC192_SHA256",
+                "HMAC256_SHA384",
+                "HMAC384_SHA512"
+            ],
+            "enumDescriptions": {
+                "CommunityString": "Trap community string authentication.",
+                "HMAC128_SHA224": "HMAC-128-SHA-224 authentication.",
+                "HMAC192_SHA256": "HMAC-192-SHA-256 authentication.",
+                "HMAC256_SHA384": "HMAC-256-SHA-384 authentication.",
+                "HMAC384_SHA512": "HMAC-384-SHA-512 authentication.",
+                "HMAC_MD5": "HMAC-MD5-96 authentication.",
+                "HMAC_SHA96": "HMAC-SHA-96 authentication.",
+                "None": "No authentication."
+            },
+            "enumLongDescriptions": {
+                "CommunityString": "This value shall indicate authentication using SNMP community strings and the value of TrapCommunity.",
+                "HMAC128_SHA224": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC128SHA224AuthProtocol.",
+                "HMAC192_SHA256": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC192SHA256AuthProtocol.",
+                "HMAC256_SHA384": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC256SHA384AuthProtocol.",
+                "HMAC384_SHA512": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC384SHA512AuthProtocol.",
+                "HMAC_MD5": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-MD5-96 authentication protocol.",
+                "HMAC_SHA96": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-SHA-96 authentication protocol.",
+                "None": "This value shall indicate authentication is not required."
+            },
+            "type": "string"
+        },
+        "SNMPEncryptionProtocols": {
+            "enum": [
+                "None",
+                "CBC_DES",
+                "CFB128_AES128"
+            ],
+            "enumDescriptions": {
+                "CBC_DES": "CBC-DES encryption.",
+                "CFB128_AES128": "CFB128-AES-128 encryption.",
+                "None": "No encryption."
+            },
+            "enumLongDescriptions": {
+                "CBC_DES": "This value shall indicate encryption conforms to the RFC3414-defined CBC-DES encryption protocol.",
+                "CFB128_AES128": "This value shall indicate encryption conforms to the RFC3414-defined CFB128-AES-128 encryption protocol.",
+                "None": "This value shall indicate there is no encryption."
+            },
+            "type": "string"
+        },
+        "SNMPSettings": {
+            "additionalProperties": false,
+            "description": "Settings for an SNMP aggregation source.",
+            "longDescription": "This type shall contain the settings for an SNMP aggregation source.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AuthenticationKey": {
+                    "description": "The secret authentication key for SNMPv3.",
+                    "longDescription": "This property shall contain the key for SNMPv3 authentication.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  The passphrase can contain any printable characters except for the double quotation mark.",
+                    "pattern": "(^[ !#-~]+$)|(^Passphrase:[ ^[ !#-~]+$)|(^Hex:[0-9A-Fa-f]{24,96})|(^\\*+$)",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "versionAdded": "v1_1_0",
+                    "writeOnly ": true
+                },
+                "AuthenticationKeySet": {
+                    "description": "Indicates if the AuthenticationKey property is set.",
+                    "longDescription": "This property shall contain `true` if a valid value was provided for the AuthenticationKey property.  Otherwise, the property shall contain `false`.",
+                    "readonly": true,
+                    "type": "boolean",
+                    "versionAdded": "v1_1_0"
+                },
+                "AuthenticationProtocol": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SNMPAuthenticationProtocols"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The authentication protocol for SNMPv3.",
+                    "longDescription": "This property shall contain the SNMPv3 authentication protocol.",
+                    "readonly": false,
+                    "versionAdded": "v1_1_0"
+                },
+                "EncryptionKey": {
+                    "description": "The secret authentication key for SNMPv3.",
+                    "longDescription": "This property shall contain the key for SNMPv3 encryption.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  The passphrase can contain any printable characters except for the double quotation mark.",
+                    "pattern": "(^[A-Za-z0-9]+$)|(^\\*+$)",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "versionAdded": "v1_1_0",
+                    "writeOnly ": true
+                },
+                "EncryptionKeySet": {
+                    "description": "Indicates if the EncryptionKey property is set.",
+                    "longDescription": "This property shall contain `true` if a valid value was provided for the EncryptionKey property.  Otherwise, the property shall contain `false`.",
+                    "readonly": true,
+                    "type": "boolean",
+                    "versionAdded": "v1_1_0"
+                },
+                "EncryptionProtocol": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SNMPEncryptionProtocols"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The encryption protocol for SNMPv3.",
+                    "longDescription": "This property shall contain the SNMPv3 encryption protocol.",
+                    "readonly": false,
+                    "versionAdded": "v1_1_0"
+                },
+                "TrapCommunity": {
+                    "description": "The SNMP trap community string.",
+                    "longDescription": "This property shall contain the SNMP trap community string.  The value shall be `null` in responses.  Services may provide a common trap community if not specified by the client when creating the aggregation source.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "versionAdded": "v1_2_0",
+                    "writeOnly ": true
+                }
+            },
+            "type": "object"
+        },
+        "SSHKeyType": {
+            "enum": [
+                "RSA",
+                "DSA",
+                "ECDSA",
+                "Ed25519"
+            ],
+            "enumDescriptions": {
+                "DSA": "DSA.",
+                "ECDSA": "ECDSA.",
+                "Ed25519": "Ed25519.",
+                "RSA": "RSA."
+            },
+            "enumLongDescriptions": {
+                "DSA": "This value shall indicate an RFC4253-defined 'ssh-dss' key type.",
+                "ECDSA": "This value shall indicate an RFC5656-defined ECDSA key type.",
+                "Ed25519": "This value shall indicate an RFC8709-defined 'ssh-ed25519' key type.",
+                "RSA": "This value shall indicate an RFC4253-defined 'ssh-rsa' key type."
+            },
+            "type": "string"
+        },
+        "SSHSettingsType": {
+            "additionalProperties": false,
+            "description": "Settings for an aggregation source using SSH as part of the associated connection method.",
+            "longDescription": "This type shall contain the settings for an aggregation source using SSH as part of the associated connection method.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "PresentedPublicHostKey": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Key.json#/definitions/Key",
+                    "description": "A link to the last public host key presented by the remote service corresponding to the aggregation source.  A client that trusts this public host key can add the public host key to the TrustedPublicHostKeys collection to allow SSH communication with the aggregation source.",
+                    "longDescription": "This property shall contain a link to a resource of type Key that represents the last public host key presented by the remote service corresponding to the aggregation source.  This property shall not be present if a public host key has not yet been presented by the remote service.",
+                    "readonly": true,
+                    "versionAdded": "v1_3_0"
+                },
+                "PresentedPublicHostKeyTimestamp": {
+                    "description": "The date and time when the key referenced by the PresentedPublicHostKey property was last updated.",
+                    "format": "date-time",
+                    "longDescription": "This property shall contain the date and time when the key referenced by the PresentedPublicHostKey property was last updated.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "versionAdded": "v1_3_0"
+                },
+                "PublicIdentityKey": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Key.json#/definitions/Key",
+                    "description": "A link to the public key that is used with the aggregation source when the authentication method is configured to use a public key.  The GenerateSSHIdentityKeyPair and RemoveSSHIdentityKeyPair are used to update the key for this aggregation source.",
+                    "longDescription": "This property shall contain a link to a resource of type Key that represents the public key that is used with the aggregation source when UserAuthenticationMethod contains `PublicKey`.  This property shall not be present if a key-pair is not available.  The State property within Status shall contain `Disabled` if a key-pair is not available and UserAuthenticationMethod contains `PublicKey`.",
+                    "readonly": true,
+                    "versionAdded": "v1_3_0"
+                },
+                "TrustedPublicHostKeys": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/KeyCollection.json#/definitions/KeyCollection",
+                    "description": "A link to the trusted public host keys of the remote service corresponding to the aggregation source.  These trusted public host keys are used for authentication of the remote service with SSH.  An SSH public host key of the remote service can be added to this collection to allow for public key-based SSH authentication.",
+                    "longDescription": "This property shall contain a link to a resource collection of type KeyCollection that represents the trusted public host keys of the remote service corresponding to the aggregation source.  If the associated connection method specifies SSH tunneling, the service shall compare the public host key presented by the remote service with members of this collection to determine if the remote service can be trusted.  If the remote service cannot be trusted, the State property within Status shall contain `Disabled` and the service shall not connect to the remote service.",
+                    "readonly": true,
+                    "versionAdded": "v1_3_0"
+                },
+                "UserAuthenticationMethod": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/UserAuthenticationMethod"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The client user authentication method.",
+                    "longDescription": "This property shall contain the client user authentication method.",
+                    "readonly": false,
+                    "versionAdded": "v1_3_0"
+                }
+            },
+            "type": "object"
+        },
+        "UserAuthenticationMethod": {
+            "enum": [
+                "PublicKey",
+                "Password"
+            ],
+            "enumDescriptions": {
+                "Password": "SSH user authentication with a password.",
+                "PublicKey": "SSH user authentication with a public key."
+            },
+            "enumLongDescriptions": {
+                "Password": "This value shall indicate SSH user authentication with a password specified by the Password property.",
+                "PublicKey": "This value shall indicate SSH user authentication with a public key specified by the PublicIdentityKey property in SSHSettings."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "release": "2022.3",
+    "title": "#AggregationSource.v1_3_1.AggregationSource"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/schema/AggregationSource_v1.xml b/static/redfish/v1/schema/AggregationSource_v1.xml
new file mode 100644
index 0000000..f4f93ab
--- /dev/null
+++ b/static/redfish/v1/schema/AggregationSource_v1.xml
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  AggregationSource v1.3.1                                            -->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2022 DMTF.                                                            -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
+    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+    <edmx:Include Namespace="Resource"/>
+    <edmx:Include Namespace="Resource.v1_0_0"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/ConnectionMethod_v1.xml">
+    <edmx:Include Namespace="ConnectionMethod"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/KeyCollection_v1.xml">
+    <edmx:Include Namespace="KeyCollection"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Key_v1.xml">
+    <edmx:Include Namespace="Key"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EntityType Name="AggregationSource" BaseType="Resource.v1_0_0.Resource" Abstract="true">
+        <Annotation Term="OData.Description" String="The AggregationSource schema is used to represent the source of information for a subset of the resources provided by a Redfish service.  It can be thought of as a provider of information.  As such, most such interfaces have requirements to support the gathering of information like address and account used to access the information."/>
+        <Annotation Term="OData.LongDescription" String="This resource shall represent an aggregation source for a Redfish implementation."/>
+        <Annotation Term="Capabilities.InsertRestrictions">
+          <Record>
+            <PropertyValue Property="Insertable" Bool="false"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Capabilities.UpdateRestrictions">
+          <Record>
+            <PropertyValue Property="Updatable" Bool="true"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Capabilities.DeleteRestrictions">
+          <Record>
+            <PropertyValue Property="Deletable" Bool="true"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Redfish.Uris">
+          <Collection>
+            <String>/redfish/v1/AggregationService/AggregationSources/{AggregationSourceId}</String>
+          </Collection>
+        </Annotation>
+      </EntityType>
+
+      <Action Name="GenerateSSHIdentityKeyPair" IsBound="true">
+        <Annotation Term="OData.Description" String="This action generates a new SSH identity key-pair to be used with this aggregation source.  The generated public key is stored in the Key resource referenced by the PublicIdentityKey property in SSHSettings.  Any existing key-pair is deleted and replace by the new key-pair."/>
+        <Annotation Term="OData.LongDescription" String="This action shall generate a new SSH identity key-pair to be used with this aggregation source.  The service shall store the generated public key in the Key resource referenced by the PublicIdentityKey property in SSHSettings.  If the aggregation source already has an associated SSH identity key-pair, the service shall delete the key-pair and replace it with the new key-pair."/>
+        <Parameter Name="AggregationSource" Type="AggregationSource.v1_0_0.Actions"/>
+        <Parameter Name="KeyType" Type="AggregationSource.v1_3_0.SSHKeyType" Nullable="false">
+          <Annotation Term="OData.Description" String="The type of SSH key."/>
+          <Annotation Term="OData.LongDescription" String="This parameter shall contain the type of SSH key."/>
+        </Parameter>
+        <Parameter Name="KeyLength" Type="Edm.Int64">
+          <Annotation Term="OData.Description" String="The length of the SSH key, in bits, if the KeyType parameter contains `RSA`."/>
+          <Annotation Term="OData.LongDescription" String="This parameter shall contain the length of the SSH key, in bits.  This parameter shall be required if the KeyType parameter contains `RSA` and rejected for other values."/>
+        </Parameter>
+        <Parameter Name="Curve" Type="AggregationSource.v1_3_0.ECDSACurveType">
+          <Annotation Term="OData.Description" String="The curve to use with the SSH key if the KeyType parameter contains `ECDSA`."/>
+          <Annotation Term="OData.LongDescription" String="This parameter shall contain the curve to use with the SSH key.  This parameter shall be required if the KeyType parameter contains `ECDSA` and rejected for other values."/>
+        </Parameter>
+        <Annotation Term="Redfish.Revisions">
+          <Collection>
+            <Record>
+              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
+              <PropertyValue Property="Version" String="v1_3_0"/>
+            </Record>
+          </Collection>
+        </Annotation>
+      </Action>
+
+      <Action Name="RemoveSSHIdentityKeyPair" IsBound="true">
+        <Annotation Term="OData.Description" String="This action removes the SSH identity key-pair used with this aggregation source."/>
+        <Annotation Term="OData.LongDescription" String="This action shall remove the private SSH identity key-pair used with this aggregation source."/>
+        <Parameter Name="AggregationSource" Type="AggregationSource.v1_0_0.Actions"/>
+        <Annotation Term="Redfish.Revisions">
+          <Collection>
+            <Record>
+              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
+              <PropertyValue Property="Version" String="v1_3_0"/>
+            </Record>
+          </Collection>
+        </Annotation>
+      </Action>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2020.2"/>
+
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.AggregationSource">
+        <Property Name="HostName" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The URI of the system to be accessed."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the URI of the system to be aggregated.  This property shall not be required when the aggregation source is configured to only receive notifications from the aggregated system and the AggregationType property contains the value `NotificationsOnly`."/>
+          <Annotation Term="OData.IsURL"/>
+        </Property>
+        <Property Name="UserName" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The user name for accessing the aggregation source."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the user name for accessing the aggregation source."/>
+        </Property>
+        <Property Name="Password" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Write"/>
+          <Annotation Term="OData.Description" String="The password for accessing the aggregation source.  The value is `null` in responses."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain a password for accessing the aggregation source.  The value shall be `null` in responses."/>
+        </Property>
+        <Property Name="Links" Type="AggregationSource.v1_0_0.Links" Nullable="false">
+          <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
+        </Property>
+        <Property Name="Actions" Type="AggregationSource.v1_0_0.Actions" Nullable="false">
+          <Annotation Term="OData.Description" String="The available actions for this resource."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="Links" BaseType="Resource.Links">
+        <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
+        <Annotation Term="OData.LongDescription" String="This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
+        <NavigationProperty Name="ConnectionMethod" Type="ConnectionMethod.ConnectionMethod">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An array of links to the connection methods used to contact this aggregation source."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type ConnectionMethod that are used to connect to the aggregation source."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+        <NavigationProperty Name="ResourcesAccessed" Type="Collection(Resource.Resource)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An array links to the resources added to the service through this aggregation source.  It is recommended that this be the minimal number of properties needed to find the resources that would be lost when the aggregation source is deleted."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to the resources added to the service through the aggregation source.  It is recommended that this be the minimal number of properties needed to find the resources that would be lost when the aggregation source is deleted.  For example, this could be the pointers to the members of the root level collections or the manager of a BMC."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+      </ComplexType>
+
+      <ComplexType Name="Actions">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="The available actions for this resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
+        <Property Name="Oem" Type="AggregationSource.v1_0_0.OemActions" Nullable="false">
+          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
+        </Property>
+      </ComplexType>
+
+      <ComplexType Name="OemActions">
+        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
+        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
+      </ComplexType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_0_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to mark properties with values containing sensitive data as write-only."/>
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_0_0.AggregationSource"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_1_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2020.4"/>
+      <Annotation Term="OData.Description" String="This version was created to add SNMP settings to the AggregationSource."/>
+
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_0_0.AggregationSource">
+        <Property Name="SNMP" Type="AggregationSource.v1_1_0.SNMPSettings">
+          <Annotation Term="OData.Description" String="SNMP settings of the aggregation source."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the SNMP settings of the aggregation source."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="SNMPSettings">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="Settings for an SNMP aggregation source."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the settings for an SNMP aggregation source."/>
+        <Property Name="AuthenticationKey" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Write"/>
+          <Annotation Term="OData.Description" String="The secret authentication key for SNMPv3."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the key for SNMPv3 authentication.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  The passphrase can contain any printable characters except for the double quotation mark."/>
+          <Annotation Term="Validation.Pattern" String="(^[ !#-~]+$)|(^Passphrase:[ ^[ !#-~]+$)|(^Hex:[0-9A-Fa-f]{24,96})|(^\*+$)"/>
+        </Property>
+        <Property Name="AuthenticationProtocol" Type="AggregationSource.v1_1_0.SNMPAuthenticationProtocols">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The authentication protocol for SNMPv3."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the SNMPv3 authentication protocol."/>
+        </Property>
+        <Property Name="EncryptionKey" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Write"/>
+          <Annotation Term="OData.Description" String="The secret authentication key for SNMPv3."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the key for SNMPv3 encryption.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  The passphrase can contain any printable characters except for the double quotation mark."/>
+          <Annotation Term="Validation.Pattern" String="(^[A-Za-z0-9]+$)|(^\*+$)"/>
+        </Property>
+        <Property Name="EncryptionProtocol" Type="AggregationSource.v1_1_0.SNMPEncryptionProtocols">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The encryption protocol for SNMPv3."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the SNMPv3 encryption protocol."/>
+        </Property>
+        <Property Name="AuthenticationKeySet" Type="Edm.Boolean" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="Indicates if the AuthenticationKey property is set."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain `true` if a valid value was provided for the AuthenticationKey property.  Otherwise, the property shall contain `false`."/>
+        </Property>
+        <Property Name="EncryptionKeySet" Type="Edm.Boolean" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="Indicates if the EncryptionKey property is set."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain `true` if a valid value was provided for the EncryptionKey property.  Otherwise, the property shall contain `false`."/>
+        </Property>
+      </ComplexType>
+
+      <EnumType Name="SNMPAuthenticationProtocols">
+        <Member Name="None">
+          <Annotation Term="OData.Description" String="No authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication is not required."/>
+        </Member>
+        <Member Name="CommunityString">
+          <Annotation Term="OData.Description" String="Trap community string authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication using SNMP community strings and the value of TrapCommunity."/>
+        </Member>
+        <Member Name="HMAC_MD5">
+          <Annotation Term="OData.Description" String="HMAC-MD5-96 authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication conforms to the RFC3414-defined HMAC-MD5-96 authentication protocol."/>
+        </Member>
+        <Member Name="HMAC_SHA96">
+          <Annotation Term="OData.Description" String="HMAC-SHA-96 authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication conforms to the RFC3414-defined HMAC-SHA-96 authentication protocol."/>
+        </Member>
+        <Member Name="HMAC128_SHA224">
+          <Annotation Term="OData.Description" String="HMAC-128-SHA-224 authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC128SHA224AuthProtocol."/>
+        </Member>
+        <Member Name="HMAC192_SHA256">
+          <Annotation Term="OData.Description" String="HMAC-192-SHA-256 authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC192SHA256AuthProtocol."/>
+        </Member>
+        <Member Name="HMAC256_SHA384">
+          <Annotation Term="OData.Description" String="HMAC-256-SHA-384 authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC256SHA384AuthProtocol."/>
+        </Member>
+        <Member Name="HMAC384_SHA512">
+          <Annotation Term="OData.Description" String="HMAC-384-SHA-512 authentication."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC384SHA512AuthProtocol."/>
+        </Member>
+      </EnumType>
+
+      <EnumType Name="SNMPEncryptionProtocols">
+        <Member Name="None">
+          <Annotation Term="OData.Description" String="No encryption."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate there is no encryption."/>
+        </Member>
+        <Member Name="CBC_DES">
+          <Annotation Term="OData.Description" String="CBC-DES encryption."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate encryption conforms to the RFC3414-defined CBC-DES encryption protocol."/>
+        </Member>
+        <Member Name="CFB128_AES128">
+          <Annotation Term="OData.Description" String="CFB128-AES-128 encryption."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate encryption conforms to the RFC3414-defined CFB128-AES-128 encryption protocol."/>
+        </Member>
+      </EnumType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_1_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to mark properties with values containing sensitive data as write-only."/>
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_1_0.AggregationSource"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_2_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2021.3"/>
+
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_1_0.AggregationSource">
+        <Property Name="AggregationType" Type="AggregationSource.v1_2_0.AggregationType" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The type of aggregation used towards the aggregation source."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the type of aggregation used for the connection method towards the aggregation source.  If this property is not present, the value shall be assumed to be `Full`."/>
+        </Property>
+      </EntityType>
+
+      <EnumType Name="AggregationType">
+        <Member Name="NotificationsOnly">
+          <Annotation Term="OData.Description" String="Only notifications are aggregated."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate that the aggregator is only aggregating notifications or events from the aggregation source according to the connection method used.  This value shall not be used with connection methods that do not include notifications."/>
+        </Member>
+        <Member Name="Full">
+          <Annotation Term="OData.Description" String="Full aggregation according to connection method."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate that the aggregator is performing full aggregation according to the connection method without any limitation such as only receiving notifications."/>
+        </Member>
+      </EnumType>
+
+      <ComplexType Name="SNMPSettings" BaseType="AggregationSource.v1_1_0.SNMPSettings">
+        <Property Name="TrapCommunity" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Write"/>
+          <Annotation Term="OData.Description" String="The SNMP trap community string."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the SNMP trap community string.  The value shall be `null` in responses.  Services may provide a common trap community if not specified by the client when creating the aggregation source."/>
+        </Property>
+      </ComplexType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_2_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to mark properties with values containing sensitive data as write-only."/>
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_2_0.AggregationSource"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_3_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2022.3"/>
+
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_2_0.AggregationSource">
+        <Property Name="SSHSettings" Type="AggregationSource.v1_3_0.SSHSettingsType">
+          <Annotation Term="OData.Description" String="Settings for an aggregation source using SSH as part of the associated connection method."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the settings for an aggregation source using SSH as part of the associated connection method."/>
+        </Property>
+        <Property Name="Status" Type="Resource.Status" Nullable="false">
+          <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="SSHSettingsType">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="Settings for an aggregation source using SSH as part of the associated connection method."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the settings for an aggregation source using SSH as part of the associated connection method."/>
+        <Property Name="UserAuthenticationMethod" Type="AggregationSource.v1_3_0.UserAuthenticationMethod">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+          <Annotation Term="OData.Description" String="The client user authentication method."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the client user authentication method."/>
+        </Property>
+        <Property Name="PresentedPublicHostKeyTimestamp" Type="Edm.DateTimeOffset">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The date and time when the key referenced by the PresentedPublicHostKey property was last updated."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the date and time when the key referenced by the PresentedPublicHostKey property was last updated."/>
+        </Property>
+        <NavigationProperty Name="TrustedPublicHostKeys" Type="KeyCollection.KeyCollection" ContainsTarget="true" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A link to the trusted public host keys of the remote service corresponding to the aggregation source.  These trusted public host keys are used for authentication of the remote service with SSH.  An SSH public host key of the remote service can be added to this collection to allow for public key-based SSH authentication."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type KeyCollection that represents the trusted public host keys of the remote service corresponding to the aggregation source.  If the associated connection method specifies SSH tunneling, the service shall compare the public host key presented by the remote service with members of this collection to determine if the remote service can be trusted.  If the remote service cannot be trusted, the State property within Status shall contain `Disabled` and the service shall not connect to the remote service."/>
+        </NavigationProperty>
+        <NavigationProperty Name="PresentedPublicHostKey" Type="Key.Key" ContainsTarget="true" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A link to the last public host key presented by the remote service corresponding to the aggregation source.  A client that trusts this public host key can add the public host key to the TrustedPublicHostKeys collection to allow SSH communication with the aggregation source."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type Key that represents the last public host key presented by the remote service corresponding to the aggregation source.  This property shall not be present if a public host key has not yet been presented by the remote service."/>
+        </NavigationProperty>
+        <NavigationProperty Name="PublicIdentityKey" Type="Key.Key" ContainsTarget="true" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="A link to the public key that is used with the aggregation source when the authentication method is configured to use a public key.  The GenerateSSHIdentityKeyPair and RemoveSSHIdentityKeyPair are used to update the key for this aggregation source."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type Key that represents the public key that is used with the aggregation source when UserAuthenticationMethod contains `PublicKey`.  This property shall not be present if a key-pair is not available.  The State property within Status shall contain `Disabled` if a key-pair is not available and UserAuthenticationMethod contains `PublicKey`."/>
+        </NavigationProperty>
+      </ComplexType>
+
+      <EnumType Name="UserAuthenticationMethod">
+        <Member Name="PublicKey">
+          <Annotation Term="OData.Description" String="SSH user authentication with a public key."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate SSH user authentication with a public key specified by the PublicIdentityKey property in SSHSettings."/>
+        </Member>
+        <Member Name="Password">
+          <Annotation Term="OData.Description" String="SSH user authentication with a password."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate SSH user authentication with a password specified by the Password property."/>
+        </Member>
+      </EnumType>
+
+      <EnumType Name="SSHKeyType">
+        <Member Name="RSA">
+          <Annotation Term="OData.Description" String="RSA."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate an RFC4253-defined 'ssh-rsa' key type."/>
+        </Member>
+        <Member Name="DSA">
+          <Annotation Term="OData.Description" String="DSA."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate an RFC4253-defined 'ssh-dss' key type."/>
+        </Member>
+        <Member Name="ECDSA">
+          <Annotation Term="OData.Description" String="ECDSA."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate an RFC5656-defined ECDSA key type."/>
+        </Member>
+        <Member Name="Ed25519">
+          <Annotation Term="OData.Description" String="Ed25519."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate an RFC8709-defined 'ssh-ed25519' key type."/>
+        </Member>
+      </EnumType>
+
+      <EnumType Name="ECDSACurveType">
+        <Member Name="NISTP256">
+          <Annotation Term="OData.Description" String="NIST P-256."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistp256' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTP384">
+          <Annotation Term="OData.Description" String="NIST P-384."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistp384' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTP521">
+          <Annotation Term="OData.Description" String="NIST P-521."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistp521' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTK163">
+          <Annotation Term="OData.Description" String="NIST K-163."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistk163' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTP192">
+          <Annotation Term="OData.Description" String="NIST P-192."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistp192' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTP224">
+          <Annotation Term="OData.Description" String="NIST P-224."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistp224' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTK233">
+          <Annotation Term="OData.Description" String="NIST K-233."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistk233' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTB233">
+          <Annotation Term="OData.Description" String="NIST B-233."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistb233' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTK283">
+          <Annotation Term="OData.Description" String="NIST K-283."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistk283' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTK409">
+          <Annotation Term="OData.Description" String="NIST K-409."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistk409' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTB409">
+          <Annotation Term="OData.Description" String="NIST B-409."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistb409' curve in RFC5656."/>
+        </Member>
+        <Member Name="NISTT571">
+          <Annotation Term="OData.Description" String="NIST T-571."/>
+          <Annotation Term="OData.LongDescription" String="This value shall indicate the 'nistt571' curve in RFC5656."/>
+        </Member>
+      </EnumType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="AggregationSource.v1_3_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to mark properties with values containing sensitive data as write-only."/>
+      <EntityType Name="AggregationSource" BaseType="AggregationSource.v1_3_0.AggregationSource"/>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>
