forked from DataDog/datadog-api-client-go
/
model_logs_metric_compute.go
166 lines (141 loc) · 4.63 KB
/
model_logs_metric_compute.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2019-Present Datadog, Inc.
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package datadog
import (
"encoding/json"
"fmt"
)
// LogsMetricCompute The compute rule to compute the log-based metric.
type LogsMetricCompute struct {
AggregationType LogsMetricComputeAggregationType `json:"aggregation_type"`
// The path to the value the log-based metric will aggregate on (only used if the aggregation type is a \"distribution\").
Path *string `json:"path,omitempty"`
}
// NewLogsMetricCompute instantiates a new LogsMetricCompute object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewLogsMetricCompute(aggregationType LogsMetricComputeAggregationType) *LogsMetricCompute {
this := LogsMetricCompute{}
this.AggregationType = aggregationType
return &this
}
// NewLogsMetricComputeWithDefaults instantiates a new LogsMetricCompute object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewLogsMetricComputeWithDefaults() *LogsMetricCompute {
this := LogsMetricCompute{}
return &this
}
// GetAggregationType returns the AggregationType field value
func (o *LogsMetricCompute) GetAggregationType() LogsMetricComputeAggregationType {
if o == nil {
var ret LogsMetricComputeAggregationType
return ret
}
return o.AggregationType
}
// GetAggregationTypeOk returns a tuple with the AggregationType field value
// and a boolean to check if the value has been set.
func (o *LogsMetricCompute) GetAggregationTypeOk() (*LogsMetricComputeAggregationType, bool) {
if o == nil {
return nil, false
}
return &o.AggregationType, true
}
// SetAggregationType sets field value
func (o *LogsMetricCompute) SetAggregationType(v LogsMetricComputeAggregationType) {
o.AggregationType = v
}
// GetPath returns the Path field value if set, zero value otherwise.
func (o *LogsMetricCompute) GetPath() string {
if o == nil || o.Path == nil {
var ret string
return ret
}
return *o.Path
}
// GetPathOk returns a tuple with the Path field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *LogsMetricCompute) GetPathOk() (*string, bool) {
if o == nil || o.Path == nil {
return nil, false
}
return o.Path, true
}
// HasPath returns a boolean if a field has been set.
func (o *LogsMetricCompute) HasPath() bool {
if o != nil && o.Path != nil {
return true
}
return false
}
// SetPath gets a reference to the given string and assigns it to the Path field.
func (o *LogsMetricCompute) SetPath(v string) {
o.Path = &v
}
func (o LogsMetricCompute) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if true {
toSerialize["aggregation_type"] = o.AggregationType
}
if o.Path != nil {
toSerialize["path"] = o.Path
}
return json.Marshal(toSerialize)
}
func (o *LogsMetricCompute) UnmarshalJSON(bytes []byte) (err error) {
required := struct {
AggregationType *LogsMetricComputeAggregationType `json:"aggregation_type"`
}{}
all := struct {
AggregationType LogsMetricComputeAggregationType `json:"aggregation_type"}`
Path *string `json:"path,omitempty"}`
}{}
err = json.Unmarshal(bytes, &required)
if err != nil {
return err
}
if required.AggregationType == nil {
return fmt.Errorf("Required field aggregation_type missing")
}
err = json.Unmarshal(bytes, &all)
if err != nil {
return err
}
o.AggregationType = all.AggregationType
o.Path = all.Path
return nil
}
type NullableLogsMetricCompute struct {
value *LogsMetricCompute
isSet bool
}
func (v NullableLogsMetricCompute) Get() *LogsMetricCompute {
return v.value
}
func (v *NullableLogsMetricCompute) Set(val *LogsMetricCompute) {
v.value = val
v.isSet = true
}
func (v NullableLogsMetricCompute) IsSet() bool {
return v.isSet
}
func (v *NullableLogsMetricCompute) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableLogsMetricCompute(val *LogsMetricCompute) *NullableLogsMetricCompute {
return &NullableLogsMetricCompute{value: val, isSet: true}
}
func (v NullableLogsMetricCompute) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableLogsMetricCompute) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}