Blazor Diffusion

<back to all web services

GetAnalyticsReports

Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports ServiceStack.Admin

Namespace Global

    Namespace ServiceStack.Admin

        <DataContract>
        Public Partial Class AnalyticsReports
            <DataMember(Order:=1)>
            Public Overridable Property Id As Long

            <DataMember(Order:=2)>
            Public Overridable Property Created As Date

            <DataMember(Order:=3)>
            Public Overridable Property Version As Decimal

            <DataMember(Order:=4)>
            Public Overridable Property Apis As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=5)>
            Public Overridable Property Users As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=6)>
            Public Overridable Property Tags As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=7)>
            Public Overridable Property Status As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=8)>
            Public Overridable Property Days As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=9)>
            Public Overridable Property ApiKeys As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=10)>
            Public Overridable Property Ips As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=11)>
            Public Overridable Property Browsers As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=12)>
            Public Overridable Property Devices As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=13)>
            Public Overridable Property Bots As Dictionary(Of String, RequestSummary)

            <DataMember(Order:=14)>
            Public Overridable Property Durations As Dictionary(Of String, Long)
        End Class

        <DataContract>
        Public Partial Class GetAnalyticsReports
            Implements IGet
            <DataMember(Order:=1)>
            Public Overridable Property Month As Date?

            <DataMember(Order:=2)>
            Public Overridable Property Filter As String

            <DataMember(Order:=3)>
            Public Overridable Property Value As String

            <DataMember(Order:=4)>
            Public Overridable Property Force As Boolean?
        End Class

        <DataContract>
        Public Partial Class GetAnalyticsReportsResponse
            <DataMember(Order:=1)>
            Public Overridable Property Result As AnalyticsReports

            <DataMember(Order:=2)>
            Public Overridable Property ResponseStatus As ResponseStatus
        End Class

        <DataContract>
        Public Partial Class RequestSummary
            <DataMember(Order:=1)>
            Public Overridable Property Name As String

            <DataMember(Order:=2)>
            Public Overridable Property TotalRequests As Long

            <DataMember(Order:=3)>
            Public Overridable Property TotalRequestLength As Long

            <DataMember(Order:=4)>
            Public Overridable Property MinRequestLength As Long

            <DataMember(Order:=5)>
            Public Overridable Property MaxRequestLength As Long

            <DataMember(Order:=6)>
            Public Overridable Property TotalDuration As Double

            <DataMember(Order:=7)>
            Public Overridable Property MinDuration As Double

            <DataMember(Order:=8)>
            Public Overridable Property MaxDuration As Double

            <DataMember(Order:=9)>
            Public Overridable Property Status As Dictionary(Of Integer, Long)

            <DataMember(Order:=10)>
            Public Overridable Property Durations As Dictionary(Of String, Long)

            <DataMember(Order:=11)>
            Public Overridable Property Apis As Dictionary(Of String, Long)

            <DataMember(Order:=12)>
            Public Overridable Property Users As Dictionary(Of String, Long)

            <DataMember(Order:=13)>
            Public Overridable Property Ips As Dictionary(Of String, Long)

            <DataMember(Order:=14)>
            Public Overridable Property ApiKeys As Dictionary(Of String, Long)
        End Class
    End Namespace
End Namespace

VB.NET GetAnalyticsReports DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsv/reply/GetAnalyticsReports HTTP/1.1 
Host: blazordiffusion.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	month: 0001-01-01,
	filter: String,
	value: String,
	force: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	result: 
	{
		id: 0,
		created: 0001-01-01,
		version: 0,
		apis: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		users: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		tags: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		status: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		days: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		apiKeys: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		ips: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		browsers: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		devices: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		bots: 
		{
			String: 
			{
				name: String,
				totalRequests: 0,
				totalRequestLength: 0,
				minRequestLength: 0,
				maxRequestLength: 0,
				totalDuration: 0,
				minDuration: 0,
				maxDuration: 0,
				status: 
				{
					0: 0
				},
				durations: 
				{
					String: 0
				},
				apis: 
				{
					String: 0
				},
				users: 
				{
					String: 0
				},
				ips: 
				{
					String: 0
				},
				apiKeys: 
				{
					String: 0
				}
			}
		},
		durations: 
		{
			String: 0
		}
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}