{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-03-22",
    "endpointPrefix":"personalize-events",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"Amazon Personalize Events",
    "serviceId":"Personalize Events",
    "signatureVersion":"v4",
    "signingName":"personalize",
    "uid":"personalize-events-2018-03-22"
  },
  "operations":{
    "PutEvents":{
      "name":"PutEvents",
      "http":{
        "method":"POST",
        "requestUri":"/events"
      },
      "input":{"shape":"PutEventsRequest"},
      "errors":[
        {"shape":"InvalidInputException"}
      ],
      "documentation":"<p>Records user interaction event data.</p>"
    }
  },
  "shapes":{
    "Date":{"type":"timestamp"},
    "ErrorMessage":{"type":"string"},
    "Event":{
      "type":"structure",
      "required":[
        "eventType",
        "properties",
        "sentAt"
      ],
      "members":{
        "eventId":{
          "shape":"StringType",
          "documentation":"<p>An ID associated with the event. If an event ID is not provided, Amazon Personalize generates a unique ID for the event. An event ID is not used as an input to the model. Amazon Personalize uses the event ID to distinquish unique events. Any subsequent events after the first with the same event ID are not used in model training.</p>"
        },
        "eventType":{
          "shape":"StringType",
          "documentation":"<p>The type of event. This property corresponds to the <code>EVENT_TYPE</code> field of the Interactions schema.</p>"
        },
        "properties":{
          "shape":"EventPropertiesJSON",
          "documentation":"<p>A string map of event-specific data that you might choose to record. For example, if a user rates a movie on your site, you might send the movie ID and rating, and the number of movie ratings made by the user.</p> <p>Each item in the map consists of a key-value pair. For example,</p> <p> <code>{\"itemId\": \"movie1\"}</code> </p> <p> <code>{\"itemId\": \"movie2\", \"eventValue\": \"4.5\"}</code> </p> <p> <code>{\"itemId\": \"movie3\", \"eventValue\": \"3\", \"numberOfRatings\": \"12\"}</code> </p> <p>The keys use camel case names that match the fields in the Interactions schema. The <code>itemId</code> and <code>eventValue</code> keys correspond to the <code>ITEM_ID</code> and <code>EVENT_VALUE</code> fields. In the above example, the <code>eventType</code> might be 'MovieRating' with <code>eventValue</code> being the rating. The <code>numberOfRatings</code> would match the 'NUMBER_OF_RATINGS' field defined in the Interactions schema.</p>",
          "jsonvalue":true
        },
        "sentAt":{
          "shape":"Date",
          "documentation":"<p>The timestamp on the client side when the event occurred.</p>"
        }
      },
      "documentation":"<p>Represents user interaction event information sent using the <code>PutEvents</code> API.</p>"
    },
    "EventList":{
      "type":"list",
      "member":{"shape":"Event"},
      "max":10,
      "min":1
    },
    "EventPropertiesJSON":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "InvalidInputException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>Provide a valid value for the field or parameter.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "PutEventsRequest":{
      "type":"structure",
      "required":[
        "trackingId",
        "sessionId",
        "eventList"
      ],
      "members":{
        "trackingId":{
          "shape":"StringType",
          "documentation":"<p>The tracking ID for the event. The ID is generated by a call to the <a href=\"https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html\">CreateEventTracker</a> API.</p>"
        },
        "userId":{
          "shape":"UserId",
          "documentation":"<p>The user associated with the event.</p>"
        },
        "sessionId":{
          "shape":"StringType",
          "documentation":"<p>The session ID associated with the user's visit.</p>"
        },
        "eventList":{
          "shape":"EventList",
          "documentation":"<p>A list of event data from the session.</p>"
        }
      }
    },
    "StringType":{
      "type":"string",
      "max":256,
      "min":1
    },
    "UserId":{
      "type":"string",
      "max":256,
      "min":1
    }
  },
  "documentation":"<p/>"
}
