Vehicle-Anti-Theft-Face-Rec.../venv/Lib/site-packages/gcloud/monitoring/label.py

99 lines
2.9 KiB
Python

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Label Descriptors for the `Google Monitoring API (V3)`_.
.. _Google Monitoring API (V3):
https://cloud.google.com/monitoring/api/ref_v3/rest/v3/LabelDescriptor
"""
class LabelValueType(object):
"""Allowed values for the `type of a label`_.
.. _type of a label:
https://cloud.google.com/monitoring/api/ref_v3/rest/v3/\
LabelDescriptor#ValueType
"""
STRING = 'STRING'
BOOL = 'BOOL'
INT64 = 'INT64'
class LabelDescriptor(object):
"""Schema specification and documentation for a single label.
:type key: string
:param key: The name of the label.
:type value_type: string
:param value_type:
The type of the label. It must be one of :data:`LabelValueType.STRING`,
:data:`LabelValueType.BOOL`, or :data:`LabelValueType.INT64`.
See :class:`LabelValueType`.
:type description: string
:param description: A human-readable description for the label.
"""
def __init__(self, key, value_type=LabelValueType.STRING, description=''):
self.key = key
self.value_type = value_type
self.description = description
@classmethod
def _from_dict(cls, info):
"""Construct a label descriptor from the parsed JSON representation.
:type info: dict
:param info:
A ``dict`` parsed from the JSON wire-format representation.
:rtype: :class:`LabelDescriptor`
:returns: A label descriptor.
"""
return cls(
info['key'],
info.get('valueType', LabelValueType.STRING),
info.get('description', ''),
)
def _to_dict(self):
"""Build a dictionary ready to be serialized to the JSON wire format.
:rtype: dict
:returns: A dictionary.
"""
info = {
'key': self.key,
'valueType': self.value_type,
}
if self.description:
info['description'] = self.description
return info
def __eq__(self, other):
return self.__dict__ == other.__dict__
def __ne__(self, other):
return self.__dict__ != other.__dict__
def __repr__(self):
return (
'LabelDescriptor(key={key!r}, value_type={value_type!r},'
' description={description!r})'
).format(**self.__dict__)