anchor.diff:                  }
   
   + Response 204 
  +
  +# Group Tag Endpoints
  +## Overview
  +TO BE DOCUMENTED
  +
  +# Group File Endpoints
  +## Overview
  +TO BE DOCUMENTED
  +
  +# Group Metadata Endpoints
  +## Overview
  +SnapBundle provides an extremely flexible way to capture type-safe key-value pairs in order to capture a complete
  +representation of an object. The system uses either a built-in (opaque to the developer) encoding mechanism to ensure
  +type-safety, or alternatively a developer defined encoding mechanism (opaque to the platform) encoding
  +mechanism. The primitive data types supported by the built-in (opaque to the developer) encoding include:
  +
  +   * **String**
  +   * **Date**
  +   * **Integer**
  +   * **Long**
  +   * **Boolean**
  +   * **Float**
  +   * **Double**
  +
  +Each of these primitive data types guarantee a precision described by the Java Language Specification. In addition to
  +these primitives, the following two complex data types are also supported by the built-in (opaque to the developer)
  +encoding:
  +
  +   * **JSON**
  +   * **XML**
  +
  +Internally, these are stored as Strings but the declaration of the more formal type may provide a more convenient client
  +binding mechanism.
  +
  +Finally, the platform also supports a **Custom** encoding (opaque to the platform) where the developer assumes full
  +responsibility for the serialization and deserialization of a type-safe value for the key.
  +
  +> Built-in platform encoding must be treated as an opaque encoding. It presently relies on a 3rd party open-source
  +library (Jackson Data Binding). There is no current vision to replace this library, but if a more compact encoding is
  +discovered the existing approach may be replaced. If you don't want to rely on platform encoding, then you are free
  +to craft your own custom representation as described.
  +
  +## Metadata Fields
  +Field | Data Type | Required | Can Update | Serialization Level | Default Value
  +------------ | ------------- | ------------ | ------------ | ------------ | ------------
  +urn | String  | true | false | Minimum | Generated
  +account | IAccount  | true | false | Full | Generated
  +lastModifiedTimestamp | long   | true | false | Standard | Generated
  +moniker | String  | false | true | Full | null
  +entityReferenceType | EntityReferenceType | true | false | Minimum |
  +referenceURN | String | true | false | Minimum |
  +dataType | MetadataDataType | true | false | Minimum |
  +key | String  | true | true | Minimum |
  +rawValue | String  | true | true | Minimum  | Opaque Base64 encoded value when using built-in encoding
  +
  +### Field Notes
  +- The `rawValue` field MUST be serialized and deserialized using the endpoints documented below *unless* a **Custom**
  +`dataType` value is assigned.
  +
  +
  +## Type-Safe Encoding [/metadata/mapper/encode/{metadataDataType}]
  +### Encodes a strongly typed value using the platform's built-in (opaque to the developer) encoded  [POST]
  +
  +The body of the HTTP POST must contain a valid String representation of the specified `metadataDataType` specified.
  +
  +- **200 SUCCESS_OK** the value was within the range of the specified `metadataDataType` and has been successfully
  +encoded
  +
  ++ Parameters
  +    + metadataDataType (required, MetadataDataType, `BooleanType`) ... Valid MetadataDataType enum value
  +
  ++ Request (text/plain)
  +
  +    + Body
  +
  +            true
  +
  ++ Response 200 (application/json)
  +
  +    + Body
  +
  +            {
  +                "rawValue" : "AQ=="
  +            }
  +
  ++ Response 400 (application/json)
  +
  +    + Body
  +
  +            {
  +                "code" : 0,
  +                "message" : "Unsupported MetadataType: foo"
  +            }
  +
  +## Type-Safe Decoding [/metadata/mapper/decode/{metadataDataType}]
  +### Decodes a strongly typed value previously encoded using the platform's built-in (opaque to the developer) encoder [POST]
  +
  +The body of the HTTP POST must contain a valid String representation of a platform encoded value of the type
  +`metadataDataType` specified.
  +
  +- **200 SUCCESS_OK** the value was within the range of the specified `metadataDataType` and has been successfully
  +decoded
  +
  ++ Request (text/plain)
  +
  +    + Body
  +
  +            AQ==
  +
  ++ Response 200 (application/json)
  +
  +    + Body
  +
  +            {
  +                "decodedValue" : true
  +            }
  +
  ++ Response 400 (application/json)
  +
  +    + Body
  +
  +            {
  +                "code" : 0,
  +                "message" : "Unsupported MetadataType: foo"
  +            }
  +
  +## Metadata Upsertion [/metadata/{entityReferenceType}/{referenceUrn}]
  +### Inserts a new key-value or updates an existing key value related to the specified entity [PUT]
  +
  +The request body is a JSON array, and each entry must include a `key`, `dataType`, and a properly
  +encoded `rawValue` field. Metadata values are restricted to *an encoded representation* that is no more than
  +4K in size. If you were to encode a 4K string, the resulting encoding would be too large for the field. Instead,
  +large values should use a file instead of metadata.
  +
  ++ Parameters
  +    + entityReferenceType (required, EntityReferenceType, `Object`) ... Valid EntityReferenceType enum value
  +    + referenceUrn (required, string, `urn:uuid:12345`) ... Case-sensitive `urn` of an existing entity of type `entityReferenceType`
  +
  ++ Request (application/json)
  +
  +    + Headers
  +
  +            Authorization: Basic eW91QGZvby5jb20gOiBOM3dzM2NyM3Q/
  +
  +    + Body
  +
  +            [
  +               {
  +                  "dataType": "BooleanType",
  +                  "key": "alpha",
  +                  "rawValue": "AQ=="
  +               },
  +               {
  +                  "dataType": "Custom",
  +                  "key": "foo",
  +                  "rawValue": "KioqKioqKioqKioqKg=="
  +               }
  +            ]
  +
  ++ Response 200
  +
  +    + Headers
  +
  +            SnapBundle-Event : MetadataUpserted
  +
  +
  ++ Response 400 (application/json)
  +
  +    + Body
  +
  +            {
  +                "code" : -2,
  +                "message" : "No such URN"
  +            }
  +
  +## Metadata Deletion [/metadata/{entityReferenceType}/{referenceUrn}/{key}]
  +### Deletes an existing metadata key by its system-assigned URN key [DELETE]
  +
  ++ Parameters
  +    + entityReferenceType (required, EntityReferenceType, `Object`) ... Valid EntityReferenceType enum value
  +    + referenceUrn (required, string, `urn:uuid:12345`) ... Case-sensitive `urn` of an existing entity of type `entityReferenceType`
  +    + key (required, string `alpha`) ... Case-sensitive `key` used to index the metadata raw value
  +
  ++ Response 204
  +
  +    + Headers
  +
  +            SnapBundle-Event : MetadataDeleted
  +
  ++ Response 400 (application/json)
  +
  +    + Body
  +
  +            {
  +                "code" : -2,
  +                "message" : "No such URN"
  +            }
  +
  +## Lookup Associated Metadata [/metadata/{entityReferenceType}/{referenceUrn}{?view,key}]
  +### Lookup all metadata that matches the specified key pattern [GET]
  +
  ++ Parameters
  +    + entityReferenceType (required, EntityReferenceType, `Object`) ... Valid EntityReferenceType enum value
  +    + referenceUrn (required, string, `urn:uuid:12345`) ... Case-sensitive `urn` of an existing entity of type `entityReferenceType`
  +    + view (optional, string, `Standard`) ... A valid JSON Serialization View name (case-sensitive)
  +    + key (optional, string, `alpha`) ... A valid, case-sensitive *startsWith* key name pattern. If omitted, then all key-values are returned.
  +
  ++ Request
  +
  +    + Headers
  +
  +            Authorization: Basic eW91QGZvby5jb20gOiBOM3dzM2NyM3Q/
  +
  ++ Response 200 (application/json)
  +
  +    + Headers
  +
  +            SnapBundle-Event : MetadataAccessed
  +            SnapBundle-View : Standard
  +
  +    + Body
  +
  +            [
  +               {
  +                  "dataType": "BooleanType",
  +                  "entityReferenceType": "Object",
  +                  "key": "alpha",
  +                  "lastModifiedTimestamp": 1393328943191,
  +                  "rawValue": "AQ==",
  +                  "referenceURN": "urn:FooBar:dae58c07-f92e-43ff-91aa-90a62e75b3ba",
  +                  "urn": "urn:uuid:47fe5a7d-1d0d-4c12-b256-96b970698623"
  +               },
  +               {
  +                  "dataType": "Custom",
  +                  "entityReferenceType": "Object",
  +                  "key": "foo",
  +                  "lastModifiedTimestamp": 1393328943205,
  +                  "rawValue": "KioqKioqKioqKioqKg==",
  +                  "referenceURN": "urn:FooBar:dae58c07-f92e-43ff-91aa-90a62e75b3ba",
  +                  "urn": "urn:uuid:5365e9f5-3eb4-492e-b2e0-95d57bc0662b"
  +               }
  +            ]
  +
  ++ Response 204
  +
  ++ Response 400 (application/json)
  +
  +    + Body
  +
  +            {
  +                "code" : -2,
  +                "message" : "No such URN"
  +            }
  +
  +# Group Extension Endpoints
  +## Overview
  +
  +# Group Notification Endpoints
  +## Overview
  +
  +# Group Event Endpoints
  +## Overview
  +
  
positive.code:             {
                  "code" : 1,
                  "message": "Password reset email has been sent"
              }
  
  # Group Device Endpoints
  
negative.code:             ]
  
  + Response 204 
  
  
  # Group Object Interaction Session Endpoints
  ## Overview
  