|
14 | 14 | # License for the specific language governing permissions and limitations
|
15 | 15 | # under the License.
|
16 | 16 |
|
17 |
| -class TelemetryMetric: |
18 |
| - def __init__(self, metric_type, component, data, opt_in_required=2): |
| 17 | +from abc import ABCMeta |
| 18 | +from splunklib import six |
| 19 | + |
| 20 | +class TelemetryMetric(six.with_metaclass(ABCMeta, object)): |
| 21 | + def __init__(self, metric_type, component, data, |
| 22 | + opt_in_required=2, |
| 23 | + version=None, |
| 24 | + index_data=None, |
| 25 | + timestamp=None, |
| 26 | + visibility=None): |
19 | 27 | self.metric_type = metric_type
|
20 | 28 | self.component = component
|
21 | 29 | self.data = data
|
22 | 30 | self.opt_in_required = opt_in_required
|
| 31 | + self.version = version |
| 32 | + self.index_data = index_data |
| 33 | + self.timestamp = timestamp |
| 34 | + self.visibility = visibility |
23 | 35 |
|
24 | 36 | @property
|
25 | 37 | def metric_type(self):
|
@@ -53,10 +65,56 @@ def opt_in_required(self):
|
53 | 65 | def opt_in_required(self, value):
|
54 | 66 | self._opt_in_required = value
|
55 | 67 |
|
| 68 | + @property |
| 69 | + def version(self): |
| 70 | + return self._version |
| 71 | + |
| 72 | + @version.setter |
| 73 | + def version(self, value): |
| 74 | + self._version = value |
| 75 | + |
| 76 | + @property |
| 77 | + def index_data(self): |
| 78 | + return self._index_data |
| 79 | + |
| 80 | + @index_data.setter |
| 81 | + def index_data(self, value): |
| 82 | + self._index_data = value |
| 83 | + |
| 84 | + @property |
| 85 | + def timestamp(self): |
| 86 | + return self._timestamp |
| 87 | + |
| 88 | + @timestamp.setter |
| 89 | + def timestamp(self, value): |
| 90 | + self._timestamp = value |
| 91 | + |
| 92 | + @property |
| 93 | + def visibility(self): |
| 94 | + return self._visibility |
| 95 | + |
| 96 | + @visibility.setter |
| 97 | + def visibility(self, value): |
| 98 | + self._visibility = value |
| 99 | + |
56 | 100 | def to_wire(self):
|
57 |
| - return { |
| 101 | + wire = { |
58 | 102 | 'type': self.metric_type,
|
59 | 103 | 'component': self.component,
|
60 | 104 | 'data': self.data,
|
61 | 105 | 'optInRequired': self.opt_in_required,
|
62 | 106 | }
|
| 107 | + |
| 108 | + if self.version is not None: |
| 109 | + wire['version'] = self.version |
| 110 | + |
| 111 | + if self.index_data is not None: |
| 112 | + wire['indexData'] = self.index_data |
| 113 | + |
| 114 | + if self.timestamp is not None: |
| 115 | + wire['timestamp'] = self.timestamp |
| 116 | + |
| 117 | + if self.visibility is not None: |
| 118 | + wire['visibility'] = self.visibility |
| 119 | + |
| 120 | + return wire |
0 commit comments