// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package mobileanalytics import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" "github.com/aws/aws-sdk-go-v2/private/protocol" ) var _ aws.Config var _ = awsutil.Prettify // 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) } // Validate inspects the fields of the type to determine if they are valid. func (s *Event) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "Event"} if s.EventType == nil { invalidParams.Add(aws.NewErrParamRequired("EventType")) } if s.EventType != nil && len(*s.EventType) < 1 { invalidParams.Add(aws.NewErrParamMinLen("EventType", 1)) } if s.Timestamp == nil { invalidParams.Add(aws.NewErrParamRequired("Timestamp")) } if s.Version != nil && len(*s.Version) < 1 { invalidParams.Add(aws.NewErrParamMinLen("Version", 1)) } if s.Session != nil { if err := s.Session.Validate(); err != nil { invalidParams.AddNested("Session", err.(aws.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s Event) MarshalFields(e protocol.FieldEncoder) error { if s.Attributes != nil { v := s.Attributes metadata := protocol.Metadata{} ms0 := e.Map(protocol.BodyTarget, "attributes", metadata) ms0.Start() for k1, v1 := range v { ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) } ms0.End() } if s.EventType != nil { v := *s.EventType metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "eventType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } if s.Metrics != nil { v := s.Metrics metadata := protocol.Metadata{} ms0 := e.Map(protocol.BodyTarget, "metrics", metadata) ms0.Start() for k1, v1 := range v { ms0.MapSetValue(k1, protocol.Float64Value(v1)) } ms0.End() } if s.Session != nil { v := s.Session metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "session", v, metadata) } if s.Timestamp != nil { v := *s.Timestamp metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "timestamp", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } if s.Version != nil { v := *s.Version metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } return nil } // 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) } // Validate inspects the fields of the type to determine if they are valid. func (s *Session) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "Session"} if s.Id != nil && len(*s.Id) < 1 { invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s Session) MarshalFields(e protocol.FieldEncoder) error { if s.Duration != nil { v := *s.Duration metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "duration", protocol.Int64Value(v), metadata) } if s.Id != nil { v := *s.Id metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } if s.StartTimestamp != nil { v := *s.StartTimestamp metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "startTimestamp", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } if s.StopTimestamp != nil { v := *s.StopTimestamp metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "stopTimestamp", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } return nil }