'''UNDER CONSTRUCTION''' [[PageOutline]] In order to truly allow interoperability among different Aggregate Managers(AMs), GENI requires a common language for describing resources, resource requests, and reservations. GENI now uses standardized Request Specification (RSpec) documents which are XML documents following agreed schemas to represent resources. The schemas support Aggregate or resource specific extensions. [wiki:GeniRspec Ongoing work] covers agreeing upon ontologies for other resource types. = RSpec Types = In GENI there are three different types of RSpec, each used to describe resources when communicating with an AM. The communication with an AM, is based on the common [wiki:GAPI_AM_API_V2#APIMethods GENI AM API]. [[Image(rspec-types.png, 60%)]] ==== Advertisement RSpec ==== This is the document that is returned by an AM that describes the resources that the AM has. ==== Request RSpec ==== This is the document that a user sends to an AM to describe the resources that he wants to reserve. ==== Manifest RSpec ==== This is the document returned by an AM tha describes the resources that a user has at an AM. = RSpec Versions = Except from the three types of RSpecs, there are also different versions of RSpecs. The current version is the [wiki:RSpecSchema3 GENI v3]. == GENI v3 == === OpenFlow v3 Extension === http://groups.geni.net/geni/wiki/HowTo/WriteOFv3Rspecs == SFA RSpec == = Checking RSpec validity = If you write your own RSpecs, then you can use [http://www.protogeni.net/resources/rspeclint rspeclint] to verify the validity of the document. `rspeclint.py` is a script written in python that will check the validity of an xml document against its schema.