anchor.diff:  include::{snippets}/page-example/curl-request.adoc[]
   include::{snippets}/page-example/http-response.adoc[]
   
  -=== Response structure
  +===== Response structure
   
   include::{snippets}/page-example/response-fields.adoc[]
   
  -=== Links
  +===== Links
   
   include::{snippets}/page-example/links.adoc[]
   
  -
  -== Conditional requests
  +=== Individual resources
  +
  +==== Detailed representations
  +
  +When fetching an individual resource, the response typically includes all attributes for that resource.
  +Nested resources are typically not included by default.
  +
  +Example: When you fetch an individual sample, you get the detailed representation.
  +
  +include::{snippets}/samples/fetch-one/curl-request.adoc[]
  +include::{snippets}/samples/fetch-one/http-response.adoc[]
  +
  +==== Conditional requests
   
   Most individual resources have entity tags and modification timestamps. This can be used to
   make conditional requests, allowing clients to minimise bandwidth use and avoiding collisions with other
  
positive.code: include::{snippets}/conditional-delete-if-etag-match/http-response.adoc[]
  
  
  === Last modified dates
  
  Where modification timestamps are available, `Last-Modified` values are included in the response headers. You can make
  subsequent requests conditional on the resource currently matching or not matching the last modified value you
  
negative.code: 
  |===
  
  === Hypermedia
  
  All resources will have a `_links` block. TODO
  
  === Root endpoint
  
  You can issue a `GET` request to the root endpoint to get all the endpoint categories supported  by the API.
  
  include::{snippets}/root-endpoint/curl-request.adoc[]
  include::{snippets}/root-endpoint/http-response.adoc[]
  
  === Collection resources
  
  ==== Summary representations
  
  When fetching a list of resources, the response includes a subset of the attributes for that resource.
  For performance reasons some attributes are excluded from the summary representation.
  These are available from the detailed representation.
  
  Example: When you get a list of samples, you get the summary representation of each sample.
  
  include::{snippets}/samples/by-submission/curl-request.adoc[]
  include::{snippets}/samples/by-submission/http-response.adoc[]
  
  ==== Paging
  
  Requests that return multiple items will be paginated to 20 items by default. You can specify a specific pages with the
  `?page` parameter. Page number is 1-based and in the absence of a `?page` parameter the first page is returned. You can also set a custom page size with the `?size` parameter, up to a maximum of 500.
  