syntax = "proto3"; package gatewayprotocol.v1; import "gatewayprotocol/v1/timestamps.proto"; option swift_prefix = "Gateway"; enum DiagnosticEventType { DIAGNOSTIC_EVENT_TYPE_UNSPECIFIED = 0; DIAGNOSTIC_EVENT_TYPE_CUSTOM = 1; } enum DiagnosticTagType { DIAGNOSTIC_TAG_TYPE_UNSPECIFIED = 0; DIAGNOSTIC_TAG_TYPE_CUSTOM = 1; } // Severity of diagnostic events which are allowed to be sent enum DiagnosticEventsSeverity { DIAGNOSTIC_EVENTS_SEVERITY_UNSPECIFIED = 0; DIAGNOSTIC_EVENTS_SEVERITY_DEBUG = 1; DIAGNOSTIC_EVENTS_SEVERITY_INFO = 2; DIAGNOSTIC_EVENTS_SEVERITY_WARNING = 3; DIAGNOSTIC_EVENTS_SEVERITY_ERROR = 4; DIAGNOSTIC_EVENTS_SEVERITY_ALWAYS = 5; } enum DiagnosticAdType { DIAGNOSTIC_AD_TYPE_UNSPECIFIED = 0; DIAGNOSTIC_AD_TYPE_FULLSCREEN = 1; DIAGNOSTIC_AD_TYPE_BANNER = 2; } // A tag attached to a diagnostic event message DiagnosticTag { // Tag type using predefined integer representation repeated DiagnosticTagType tag_type = 1; // Tag type represented as string (event_type must be set to // DIAGNOSTIC_TAG_TYPE_CUSTOM) optional string custom_tag_type = 2; // A value attached to a tag oneof value { string string_value = 3; int32 int_value = 4; } } // A diagnostic event message DiagnosticEvent { // Event type using predefined integer representation DiagnosticEventType event_type = 1; // Event type represented as string (event_type must be set to // DIAGNOSTIC_EVENT_TYPE_CUSTOM) optional string custom_event_type = 2; // Device state when event was created Timestamps timestamps = 3; // Optional time value associated with event, in milliseconds optional double time_value = 4; // An alternative approach to handle tags map string_tags = 5; map int_tags = 6; // The unique auto-incrementing event id for each event - replaces the batch // ID to allow for retries to add to batches int32 event_id = 7; // Impression Opportunity ID of associated AdObject optional bytes impression_opportunity_id = 8; // Placement ID of associated AdObject optional string placement_id = 9; // Ad type of associated AdObject optional DiagnosticAdType ad_type = 10; // AdObject loaded with header bidding ad markup optional bool is_header_bidding = 11; } message DiagnosticEventRequest { // A batch of diagnostic events repeated DiagnosticEvent batch = 1; }