Implement AggregationSourceCollection

This is an intermediate step in setting up aggregation sources. A
future patch will add aggregation sources based on the existence of
satellite configs.  For now the collection will always return as 0
members.

Adds the AggregationSourceCollection schema which we previously
ignored.

Tested:
Service Validator passes

Signed-off-by: Carson Labrado <clabrado@google.com>
Change-Id: I65c9231289bf0a9b6392696d55bc3feb0023c694
diff --git a/static/redfish/v1/JsonSchemas/AggregationSourceCollection/AggregationSourceCollection.json b/static/redfish/v1/JsonSchemas/AggregationSourceCollection/AggregationSourceCollection.json
new file mode 100644
index 0000000..64ce2d4
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/AggregationSourceCollection/AggregationSourceCollection.json
@@ -0,0 +1,99 @@
+{
+    "$id": "http://redfish.dmtf.org/schemas/v1/AggregationSourceCollection.json",
+    "$ref": "#/definitions/AggregationSourceCollection",
+    "$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": {
+        "AggregationSourceCollection": {
+            "anyOf": [
+                {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef"
+                },
+                {
+                    "additionalProperties": false,
+                    "description": "The collection of AggregationSource resource instances.",
+                    "longDescription": "This resource shall represent a resource collection of AggregationSource instances 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"
+                        },
+                        "Description": {
+                            "anyOf": [
+                                {
+                                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                                },
+                                {
+                                    "type": "null"
+                                }
+                            ],
+                            "readonly": true
+                        },
+                        "Members": {
+                            "description": "The members of this collection.",
+                            "items": {
+                                "$ref": "http://redfish.dmtf.org/schemas/v1/AggregationSource.json#/definitions/AggregationSource"
+                            },
+                            "longDescription": "This property shall contain an array of links to the members of this collection.",
+                            "readonly": true,
+                            "type": "array"
+                        },
+                        "Members@odata.count": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+                        },
+                        "Members@odata.nextLink": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/nextLink"
+                        },
+                        "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 contained in this object shall conform to the Redfish Specification-described requirements."
+                        }
+                    },
+                    "required": [
+                        "Members",
+                        "Members@odata.count",
+                        "@odata.id",
+                        "@odata.type",
+                        "Name"
+                    ],
+                    "type": "object"
+                }
+            ],
+            "deletable": false,
+            "insertable": true,
+            "updatable": false,
+            "uris": [
+                "/redfish/v1/AggregationService/AggregationSources"
+            ]
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#AggregationSourceCollection.AggregationSourceCollection"
+}
\ No newline at end of file