354 lines
10 KiB
Go
354 lines
10 KiB
Go
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
|
|
|
|
package mobileanalytics
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
"github.com/aws/aws-sdk-go/aws/awsutil"
|
|
"github.com/aws/aws-sdk-go/aws/request"
|
|
"github.com/aws/aws-sdk-go/private/protocol"
|
|
"github.com/aws/aws-sdk-go/private/protocol/restjson"
|
|
)
|
|
|
|
const opPutEvents = "PutEvents"
|
|
|
|
// PutEventsRequest generates a "aws/request.Request" representing the
|
|
// client's request for the PutEvents operation. The "output" return
|
|
// value will be populated with the request's response once the request complets
|
|
// successfuly.
|
|
//
|
|
// Use "Send" method on the returned Request to send the API call to the service.
|
|
// the "output" return value is not valid until after Send returns without error.
|
|
//
|
|
// See PutEvents for more information on using the PutEvents
|
|
// API call, and error handling.
|
|
//
|
|
// This method is useful when you want to inject custom logic or configuration
|
|
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
|
|
//
|
|
//
|
|
// // Example sending a request using the PutEventsRequest method.
|
|
// req, resp := client.PutEventsRequest(params)
|
|
//
|
|
// err := req.Send()
|
|
// if err == nil { // resp is now filled
|
|
// fmt.Println(resp)
|
|
// }
|
|
func (c *MobileAnalytics) PutEventsRequest(input *PutEventsInput) (req *request.Request, output *PutEventsOutput) {
|
|
op := &request.Operation{
|
|
Name: opPutEvents,
|
|
HTTPMethod: "POST",
|
|
HTTPPath: "/2014-06-05/events",
|
|
}
|
|
|
|
if input == nil {
|
|
input = &PutEventsInput{}
|
|
}
|
|
|
|
output = &PutEventsOutput{}
|
|
req = c.newRequest(op, input, output)
|
|
req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
|
|
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
|
|
return
|
|
}
|
|
|
|
// PutEvents API operation for Amazon Mobile Analytics.
|
|
//
|
|
// 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.
|
|
//
|
|
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
|
|
// with awserr.Error's Code and Message methods to get detailed information about
|
|
// the error.
|
|
//
|
|
// See the AWS API reference guide for Amazon Mobile Analytics's
|
|
// API operation PutEvents for usage and error information.
|
|
//
|
|
// Returned Error Codes:
|
|
// * ErrCodeBadRequestException "BadRequestException"
|
|
// An exception object returned when a request fails.
|
|
//
|
|
func (c *MobileAnalytics) PutEvents(input *PutEventsInput) (*PutEventsOutput, error) {
|
|
req, out := c.PutEventsRequest(input)
|
|
return out, req.Send()
|
|
}
|
|
|
|
// PutEventsWithContext is the same as PutEvents with the addition of
|
|
// the ability to pass a context and additional request options.
|
|
//
|
|
// See PutEvents for details on how to use this API operation.
|
|
//
|
|
// The context must be non-nil and will be used for request cancellation. If
|
|
// the context is nil a panic will occur. In the future the SDK may create
|
|
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
|
|
// for more information on using Contexts.
|
|
func (c *MobileAnalytics) PutEventsWithContext(ctx aws.Context, input *PutEventsInput, opts ...request.Option) (*PutEventsOutput, error) {
|
|
req, out := c.PutEventsRequest(input)
|
|
req.SetContext(ctx)
|
|
req.ApplyOptions(opts...)
|
|
return out, req.Send()
|
|
}
|
|
|
|
// A JSON object representing a batch of unique event occurrences in your app.
|
|
type Event struct {
|
|
_ struct{} `type:"structure"`
|
|
|
|
// A collection of key-value pairs that give additional context to the event.
|
|
// The key-value pairs are specified by the developer.
|
|
//
|
|
// This collection can be empty or the attribute object can be omitted.
|
|
Attributes map[string]*string `locationName:"attributes" type:"map"`
|
|
|
|
// A name signifying an event that occurred in your app. This is used for grouping
|
|
// and aggregating like events together for reporting purposes.
|
|
//
|
|
// EventType is a required field
|
|
EventType *string `locationName:"eventType" min:"1" type:"string" required:"true"`
|
|
|
|
// A collection of key-value pairs that gives additional, measurable context
|
|
// to the event. The key-value pairs are specified by the developer.
|
|
//
|
|
// This collection can be empty or the attribute object can be omitted.
|
|
Metrics map[string]*float64 `locationName:"metrics" type:"map"`
|
|
|
|
// The session the event occured within.
|
|
Session *Session `locationName:"session" type:"structure"`
|
|
|
|
// The time the event occurred in ISO 8601 standard date time format. For example,
|
|
// 2014-06-30T19:07:47.885Z
|
|
//
|
|
// Timestamp is a required field
|
|
Timestamp *string `locationName:"timestamp" type:"string" required:"true"`
|
|
|
|
// The version of the event.
|
|
Version *string `locationName:"version" min:"1" type:"string"`
|
|
}
|
|
|
|
// String returns the string representation
|
|
func (s Event) String() string {
|
|
return awsutil.Prettify(s)
|
|
}
|
|
|
|
// GoString returns the string representation
|
|
func (s Event) GoString() string {
|
|
return s.String()
|
|
}
|
|
|
|
// Validate inspects the fields of the type to determine if they are valid.
|
|
func (s *Event) Validate() error {
|
|
invalidParams := request.ErrInvalidParams{Context: "Event"}
|
|
if s.EventType == nil {
|
|
invalidParams.Add(request.NewErrParamRequired("EventType"))
|
|
}
|
|
if s.EventType != nil && len(*s.EventType) < 1 {
|
|
invalidParams.Add(request.NewErrParamMinLen("EventType", 1))
|
|
}
|
|
if s.Timestamp == nil {
|
|
invalidParams.Add(request.NewErrParamRequired("Timestamp"))
|
|
}
|
|
if s.Version != nil && len(*s.Version) < 1 {
|
|
invalidParams.Add(request.NewErrParamMinLen("Version", 1))
|
|
}
|
|
if s.Session != nil {
|
|
if err := s.Session.Validate(); err != nil {
|
|
invalidParams.AddNested("Session", err.(request.ErrInvalidParams))
|
|
}
|
|
}
|
|
|
|
if invalidParams.Len() > 0 {
|
|
return invalidParams
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetAttributes sets the Attributes field's value.
|
|
func (s *Event) SetAttributes(v map[string]*string) *Event {
|
|
s.Attributes = v
|
|
return s
|
|
}
|
|
|
|
// SetEventType sets the EventType field's value.
|
|
func (s *Event) SetEventType(v string) *Event {
|
|
s.EventType = &v
|
|
return s
|
|
}
|
|
|
|
// SetMetrics sets the Metrics field's value.
|
|
func (s *Event) SetMetrics(v map[string]*float64) *Event {
|
|
s.Metrics = v
|
|
return s
|
|
}
|
|
|
|
// SetSession sets the Session field's value.
|
|
func (s *Event) SetSession(v *Session) *Event {
|
|
s.Session = v
|
|
return s
|
|
}
|
|
|
|
// SetTimestamp sets the Timestamp field's value.
|
|
func (s *Event) SetTimestamp(v string) *Event {
|
|
s.Timestamp = &v
|
|
return s
|
|
}
|
|
|
|
// SetVersion sets the Version field's value.
|
|
func (s *Event) SetVersion(v string) *Event {
|
|
s.Version = &v
|
|
return s
|
|
}
|
|
|
|
// A container for the data needed for a PutEvent operation
|
|
type PutEventsInput struct {
|
|
_ struct{} `type:"structure"`
|
|
|
|
// The client context including the client ID, app title, app version and package
|
|
// name.
|
|
//
|
|
// ClientContext is a required field
|
|
ClientContext *string `location:"header" locationName:"x-amz-Client-Context" type:"string" required:"true"`
|
|
|
|
// The encoding used for the client context.
|
|
ClientContextEncoding *string `location:"header" locationName:"x-amz-Client-Context-Encoding" type:"string"`
|
|
|
|
// An array of Event JSON objects
|
|
//
|
|
// Events is a required field
|
|
Events []*Event `locationName:"events" type:"list" required:"true"`
|
|
}
|
|
|
|
// String returns the string representation
|
|
func (s PutEventsInput) String() string {
|
|
return awsutil.Prettify(s)
|
|
}
|
|
|
|
// GoString returns the string representation
|
|
func (s PutEventsInput) GoString() string {
|
|
return s.String()
|
|
}
|
|
|
|
// Validate inspects the fields of the type to determine if they are valid.
|
|
func (s *PutEventsInput) Validate() error {
|
|
invalidParams := request.ErrInvalidParams{Context: "PutEventsInput"}
|
|
if s.ClientContext == nil {
|
|
invalidParams.Add(request.NewErrParamRequired("ClientContext"))
|
|
}
|
|
if s.Events == nil {
|
|
invalidParams.Add(request.NewErrParamRequired("Events"))
|
|
}
|
|
if s.Events != nil {
|
|
for i, v := range s.Events {
|
|
if v == nil {
|
|
continue
|
|
}
|
|
if err := v.Validate(); err != nil {
|
|
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
|
|
}
|
|
}
|
|
}
|
|
|
|
if invalidParams.Len() > 0 {
|
|
return invalidParams
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetClientContext sets the ClientContext field's value.
|
|
func (s *PutEventsInput) SetClientContext(v string) *PutEventsInput {
|
|
s.ClientContext = &v
|
|
return s
|
|
}
|
|
|
|
// SetClientContextEncoding sets the ClientContextEncoding field's value.
|
|
func (s *PutEventsInput) SetClientContextEncoding(v string) *PutEventsInput {
|
|
s.ClientContextEncoding = &v
|
|
return s
|
|
}
|
|
|
|
// SetEvents sets the Events field's value.
|
|
func (s *PutEventsInput) SetEvents(v []*Event) *PutEventsInput {
|
|
s.Events = v
|
|
return s
|
|
}
|
|
|
|
type PutEventsOutput struct {
|
|
_ struct{} `type:"structure"`
|
|
}
|
|
|
|
// String returns the string representation
|
|
func (s PutEventsOutput) String() string {
|
|
return awsutil.Prettify(s)
|
|
}
|
|
|
|
// GoString returns the string representation
|
|
func (s PutEventsOutput) GoString() string {
|
|
return s.String()
|
|
}
|
|
|
|
// Describes the session. Session information is required on ALL events.
|
|
type Session struct {
|
|
_ struct{} `type:"structure"`
|
|
|
|
// The duration of the session.
|
|
Duration *int64 `locationName:"duration" type:"long"`
|
|
|
|
// A unique identifier for the session
|
|
Id *string `locationName:"id" min:"1" type:"string"`
|
|
|
|
// The time the event started in ISO 8601 standard date time format. For example,
|
|
// 2014-06-30T19:07:47.885Z
|
|
StartTimestamp *string `locationName:"startTimestamp" type:"string"`
|
|
|
|
// The time the event terminated in ISO 8601 standard date time format. For
|
|
// example, 2014-06-30T19:07:47.885Z
|
|
StopTimestamp *string `locationName:"stopTimestamp" type:"string"`
|
|
}
|
|
|
|
// String returns the string representation
|
|
func (s Session) String() string {
|
|
return awsutil.Prettify(s)
|
|
}
|
|
|
|
// GoString returns the string representation
|
|
func (s Session) GoString() string {
|
|
return s.String()
|
|
}
|
|
|
|
// Validate inspects the fields of the type to determine if they are valid.
|
|
func (s *Session) Validate() error {
|
|
invalidParams := request.ErrInvalidParams{Context: "Session"}
|
|
if s.Id != nil && len(*s.Id) < 1 {
|
|
invalidParams.Add(request.NewErrParamMinLen("Id", 1))
|
|
}
|
|
|
|
if invalidParams.Len() > 0 {
|
|
return invalidParams
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetDuration sets the Duration field's value.
|
|
func (s *Session) SetDuration(v int64) *Session {
|
|
s.Duration = &v
|
|
return s
|
|
}
|
|
|
|
// SetId sets the Id field's value.
|
|
func (s *Session) SetId(v string) *Session {
|
|
s.Id = &v
|
|
return s
|
|
}
|
|
|
|
// SetStartTimestamp sets the StartTimestamp field's value.
|
|
func (s *Session) SetStartTimestamp(v string) *Session {
|
|
s.StartTimestamp = &v
|
|
return s
|
|
}
|
|
|
|
// SetStopTimestamp sets the StopTimestamp field's value.
|
|
func (s *Session) SetStopTimestamp(v string) *Session {
|
|
s.StopTimestamp = &v
|
|
return s
|
|
}
|