{
  "version": "2.0",
  "operations": {
    "PutEvents": "<p>The PutEvents operation records one or more events. You can have up to 1,500 unique custom events per app, any combination of up to 40 attributes and metrics per custom event, and any number of attribute or metric values.</p>"
  },
  "service": "<p>Amazon Mobile Analytics is a service for collecting, visualizing, and understanding app usage data at scale.</p>",
  "shapes": {
    "BadRequestException": {
      "base": "<p>An exception object returned when a request fails.</p>",
      "refs": {
      }
    },
    "Double": {
      "base": null,
      "refs": {
        "MapOfStringToNumber$value": null
      }
    },
    "Event": {
      "base": "<p>A JSON object representing a batch of unique event occurrences in your app.</p>",
      "refs": {
        "EventListDefinition$member": null
      }
    },
    "EventListDefinition": {
      "base": null,
      "refs": {
        "PutEventsInput$events": "<p>An array of Event JSON objects</p>"
      }
    },
    "ISO8601Timestamp": {
      "base": null,
      "refs": {
        "Event$timestamp": "<p>The time the event occurred in ISO 8601 standard date time format. For example, 2014-06-30T19:07:47.885Z</p>",
        "Session$startTimestamp": "<p>The time the event started in ISO 8601 standard date time format. For example, 2014-06-30T19:07:47.885Z</p>",
        "Session$stopTimestamp": "<p>The time the event terminated in ISO 8601 standard date time format. For example, 2014-06-30T19:07:47.885Z</p>"
      }
    },
    "Long": {
      "base": null,
      "refs": {
        "Session$duration": "<p>The duration of the session.</p>"
      }
    },
    "MapOfStringToNumber": {
      "base": null,
      "refs": {
        "Event$metrics": "<p>A collection of key-value pairs that gives additional, measurable context to the event. The key-value pairs are specified by the developer.</p> <p>This collection can be empty or the attribute object can be omitted.</p>"
      }
    },
    "MapOfStringToString": {
      "base": null,
      "refs": {
        "Event$attributes": "<p>A collection of key-value pairs that give additional context to the event. The key-value pairs are specified by the developer.</p> <p>This collection can be empty or the attribute object can be omitted.</p>"
      }
    },
    "PutEventsInput": {
      "base": "<p>A container for the data needed for a PutEvent operation</p>",
      "refs": {
      }
    },
    "Session": {
      "base": "<p>Describes the session. Session information is required on ALL events.</p>",
      "refs": {
        "Event$session": "<p>The session the event occured within. </p>"
      }
    },
    "String": {
      "base": null,
      "refs": {
        "BadRequestException$message": "<p>A text description associated with the BadRequestException object.</p>",
        "PutEventsInput$clientContext": "<p>The client context including the client ID, app title, app version and package name.</p>",
        "PutEventsInput$clientContextEncoding": "<p>The encoding used for the client context.</p>"
      }
    },
    "String0to1000Chars": {
      "base": null,
      "refs": {
        "MapOfStringToString$value": null
      }
    },
    "String10Chars": {
      "base": null,
      "refs": {
        "Event$version": "<p>The version of the event.</p>"
      }
    },
    "String50Chars": {
      "base": null,
      "refs": {
        "Event$eventType": "<p>A name signifying an event that occurred in your app. This is used for grouping and aggregating like events together for reporting purposes.</p>",
        "MapOfStringToNumber$key": null,
        "MapOfStringToString$key": null,
        "Session$id": "<p>A unique identifier for the session</p>"
      }
    }
  }
}
