]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blame - vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / aws / aws-sdk-go / aws / csm / metric.go
CommitLineData
15c0b25d
AP
1package csm
2
3import (
4 "strconv"
5 "time"
107c1cdb
ND
6
7 "github.com/aws/aws-sdk-go/aws"
15c0b25d
AP
8)
9
10type metricTime time.Time
11
12func (t metricTime) MarshalJSON() ([]byte, error) {
13 ns := time.Duration(time.Time(t).UnixNano())
14 return []byte(strconv.FormatInt(int64(ns/time.Millisecond), 10)), nil
15}
16
17type metric struct {
18 ClientID *string `json:"ClientId,omitempty"`
19 API *string `json:"Api,omitempty"`
20 Service *string `json:"Service,omitempty"`
21 Timestamp *metricTime `json:"Timestamp,omitempty"`
22 Type *string `json:"Type,omitempty"`
23 Version *int `json:"Version,omitempty"`
24
25 AttemptCount *int `json:"AttemptCount,omitempty"`
26 Latency *int `json:"Latency,omitempty"`
27
28 Fqdn *string `json:"Fqdn,omitempty"`
29 UserAgent *string `json:"UserAgent,omitempty"`
30 AttemptLatency *int `json:"AttemptLatency,omitempty"`
31
32 SessionToken *string `json:"SessionToken,omitempty"`
33 Region *string `json:"Region,omitempty"`
34 AccessKey *string `json:"AccessKey,omitempty"`
35 HTTPStatusCode *int `json:"HttpStatusCode,omitempty"`
36 XAmzID2 *string `json:"XAmzId2,omitempty"`
37 XAmzRequestID *string `json:"XAmznRequestId,omitempty"`
38
39 AWSException *string `json:"AwsException,omitempty"`
40 AWSExceptionMessage *string `json:"AwsExceptionMessage,omitempty"`
41 SDKException *string `json:"SdkException,omitempty"`
42 SDKExceptionMessage *string `json:"SdkExceptionMessage,omitempty"`
43
107c1cdb
ND
44 FinalHTTPStatusCode *int `json:"FinalHttpStatusCode,omitempty"`
45 FinalAWSException *string `json:"FinalAwsException,omitempty"`
46 FinalAWSExceptionMessage *string `json:"FinalAwsExceptionMessage,omitempty"`
47 FinalSDKException *string `json:"FinalSdkException,omitempty"`
48 FinalSDKExceptionMessage *string `json:"FinalSdkExceptionMessage,omitempty"`
49
15c0b25d
AP
50 DestinationIP *string `json:"DestinationIp,omitempty"`
51 ConnectionReused *int `json:"ConnectionReused,omitempty"`
52
53 AcquireConnectionLatency *int `json:"AcquireConnectionLatency,omitempty"`
54 ConnectLatency *int `json:"ConnectLatency,omitempty"`
55 RequestLatency *int `json:"RequestLatency,omitempty"`
56 DNSLatency *int `json:"DnsLatency,omitempty"`
57 TCPLatency *int `json:"TcpLatency,omitempty"`
58 SSLLatency *int `json:"SslLatency,omitempty"`
107c1cdb
ND
59
60 MaxRetriesExceeded *int `json:"MaxRetriesExceeded,omitempty"`
61}
62
63func (m *metric) TruncateFields() {
64 m.ClientID = truncateString(m.ClientID, 255)
65 m.UserAgent = truncateString(m.UserAgent, 256)
66
67 m.AWSException = truncateString(m.AWSException, 128)
68 m.AWSExceptionMessage = truncateString(m.AWSExceptionMessage, 512)
69
70 m.SDKException = truncateString(m.SDKException, 128)
71 m.SDKExceptionMessage = truncateString(m.SDKExceptionMessage, 512)
72
73 m.FinalAWSException = truncateString(m.FinalAWSException, 128)
74 m.FinalAWSExceptionMessage = truncateString(m.FinalAWSExceptionMessage, 512)
75
76 m.FinalSDKException = truncateString(m.FinalSDKException, 128)
77 m.FinalSDKExceptionMessage = truncateString(m.FinalSDKExceptionMessage, 512)
78}
79
80func truncateString(v *string, l int) *string {
81 if v != nil && len(*v) > l {
82 nv := (*v)[:l]
83 return &nv
84 }
85
86 return v
87}
88
89func (m *metric) SetException(e metricException) {
90 switch te := e.(type) {
91 case awsException:
92 m.AWSException = aws.String(te.exception)
93 m.AWSExceptionMessage = aws.String(te.message)
94 case sdkException:
95 m.SDKException = aws.String(te.exception)
96 m.SDKExceptionMessage = aws.String(te.message)
97 }
98}
99
100func (m *metric) SetFinalException(e metricException) {
101 switch te := e.(type) {
102 case awsException:
103 m.FinalAWSException = aws.String(te.exception)
104 m.FinalAWSExceptionMessage = aws.String(te.message)
105 case sdkException:
106 m.FinalSDKException = aws.String(te.exception)
107 m.FinalSDKExceptionMessage = aws.String(te.message)
108 }
15c0b25d 109}