diff --git a/CHANGELOG.md b/CHANGELOG.md index 61497149..40c10a73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,3 +2,6 @@ ### Features 1. [#2](https://github.com/bonitoo-io/influxdb-client-python/issues/2): The write client is able to write data in batches (configuration: `batch_size`, `flush_interval`, `jitter_interval`, `retry_interval`) + +### Bugs +1. [#3](https://github.com/bonitoo-io/influxdb-client-python/issues/3): The management API correctly supports inheritance defined in Influx API diff --git a/influxdb2/domain/authorization.py b/influxdb2/domain/authorization.py index c5ffd4da..22ac9630 100644 --- a/influxdb2/domain/authorization.py +++ b/influxdb2/domain/authorization.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.authorization_update_request import AuthorizationUpdateRequest -class Authorization(object): +class Authorization(AuthorizationUpdateRequest): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -38,7 +39,9 @@ class Authorization(object): 'user_id': 'str', 'user': 'str', 'org': 'str', - 'links': 'object' + 'links': 'object', + 'status': 'str', + 'description': 'str' } attribute_map = { @@ -49,11 +52,14 @@ class Authorization(object): 'user_id': 'userID', 'user': 'user', 'org': 'org', - 'links': 'links' + 'links': 'links', + 'status': 'status', + 'description': 'description' } - def __init__(self, org_id=None, permissions=None, id=None, token=None, user_id=None, user=None, org=None, links=None): # noqa: E501 + def __init__(self, org_id=None, permissions=None, id=None, token=None, user_id=None, user=None, org=None, links=None, status='active', description=None): # noqa: E501 """Authorization - a model defined in OpenAPI""" # noqa: E501 + AuthorizationUpdateRequest.__init__(self, status=status, description=description) self._org_id = None self._permissions = None diff --git a/influxdb2/domain/check.py b/influxdb2/domain/check.py index 60b4d3c1..4f320da1 100644 --- a/influxdb2/domain/check.py +++ b/influxdb2/domain/check.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.check_base import CheckBase -class Check(object): +class Check(CheckBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,13 +32,44 @@ class Check(object): and the value is json key in definition. """ openapi_types = { + 'id': 'str', + 'name': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'query': 'DashboardQuery', + 'status': 'TaskStatusType', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'tags': 'list[CheckBaseTags]', + 'description': 'str', + 'status_message_template': 'str', + 'labels': 'list[Label]' } attribute_map = { + 'id': 'id', + 'name': 'name', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'query': 'query', + 'status': 'status', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'tags': 'tags', + 'description': 'description', + 'status_message_template': 'statusMessageTemplate', + 'labels': 'labels' } - def __init__(self): # noqa: E501 + def __init__(self, id=None, name=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, query=None, status=None, every=None, offset=None, cron=None, tags=None, description=None, status_message_template=None, labels=None): # noqa: E501 """Check - a model defined in OpenAPI""" # noqa: E501 + CheckBase.__init__(self, id=id, name=name, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, query=query, status=status, every=every, offset=offset, cron=cron, tags=tags, description=description, status_message_template=status_message_template, labels=labels) self.discriminator = None def to_dict(self): diff --git a/influxdb2/domain/check_view_properties.py b/influxdb2/domain/check_view_properties.py index 02118d6c..fc2d127f 100644 --- a/influxdb2/domain/check_view_properties.py +++ b/influxdb2/domain/check_view_properties.py @@ -11,11 +11,13 @@ import pprint +import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class CheckViewProperties(object): +class CheckViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -49,6 +51,7 @@ class CheckViewProperties(object): def __init__(self, type=None, shape=None, check_id=None, check=None, queries=None, colors=None): # noqa: E501 """CheckViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._shape = None diff --git a/influxdb2/domain/dashboard.py b/influxdb2/domain/dashboard.py index 16c4bef9..2c189b4a 100644 --- a/influxdb2/domain/dashboard.py +++ b/influxdb2/domain/dashboard.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.create_dashboard_request import CreateDashboardRequest -class Dashboard(object): +class Dashboard(CreateDashboardRequest): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -35,7 +36,10 @@ class Dashboard(object): 'id': 'str', 'meta': 'object', 'cells': 'list[Cell]', - 'labels': 'list[Label]' + 'labels': 'list[Label]', + 'org_id': 'str', + 'name': 'str', + 'description': 'str' } attribute_map = { @@ -43,11 +47,15 @@ class Dashboard(object): 'id': 'id', 'meta': 'meta', 'cells': 'cells', - 'labels': 'labels' + 'labels': 'labels', + 'org_id': 'orgID', + 'name': 'name', + 'description': 'description' } - def __init__(self, links=None, id=None, meta=None, cells=None, labels=None): # noqa: E501 + def __init__(self, links=None, id=None, meta=None, cells=None, labels=None, org_id=None, name=None, description=None): # noqa: E501 """Dashboard - a model defined in OpenAPI""" # noqa: E501 + CreateDashboardRequest.__init__(self, org_id=org_id, name=name, description=description) self._links = None self._id = None diff --git a/influxdb2/domain/deadman_check.py b/influxdb2/domain/deadman_check.py index 0ae167f4..fee36bd9 100644 --- a/influxdb2/domain/deadman_check.py +++ b/influxdb2/domain/deadman_check.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.check_base import CheckBase -class DeadmanCheck(object): +class DeadmanCheck(CheckBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -34,18 +35,49 @@ class DeadmanCheck(object): 'type': 'str', 'time_since': 'int', 'report_zero': 'bool', - 'level': 'CheckStatusLevel' + 'level': 'CheckStatusLevel', + 'id': 'str', + 'name': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'query': 'DashboardQuery', + 'status': 'TaskStatusType', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'tags': 'list[CheckBaseTags]', + 'description': 'str', + 'status_message_template': 'str', + 'labels': 'list[Label]' } attribute_map = { 'type': 'type', 'time_since': 'timeSince', 'report_zero': 'reportZero', - 'level': 'level' + 'level': 'level', + 'id': 'id', + 'name': 'name', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'query': 'query', + 'status': 'status', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'tags': 'tags', + 'description': 'description', + 'status_message_template': 'statusMessageTemplate', + 'labels': 'labels' } - def __init__(self, type=None, time_since=None, report_zero=None, level=None): # noqa: E501 + def __init__(self, type=None, time_since=None, report_zero=None, level=None, id=None, name=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, query=None, status=None, every=None, offset=None, cron=None, tags=None, description=None, status_message_template=None, labels=None): # noqa: E501 """DeadmanCheck - a model defined in OpenAPI""" # noqa: E501 + CheckBase.__init__(self, id=id, name=name, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, query=query, status=status, every=every, offset=offset, cron=cron, tags=tags, description=description, status_message_template=status_message_template, labels=labels) self._type = None self._time_since = None diff --git a/influxdb2/domain/gauge_view_properties.py b/influxdb2/domain/gauge_view_properties.py index ca9673a2..edea15f7 100644 --- a/influxdb2/domain/gauge_view_properties.py +++ b/influxdb2/domain/gauge_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class GaugeViewProperties(object): +class GaugeViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -58,6 +59,7 @@ class GaugeViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, prefix=None, suffix=None, legend=None, decimal_places=None): # noqa: E501 """GaugeViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/domain/heatmap_view_properties.py b/influxdb2/domain/heatmap_view_properties.py index f4570e93..bb1f7870 100644 --- a/influxdb2/domain/heatmap_view_properties.py +++ b/influxdb2/domain/heatmap_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class HeatmapViewProperties(object): +class HeatmapViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -72,6 +73,7 @@ class HeatmapViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, x_column=None, y_column=None, x_domain=None, y_domain=None, x_axis_label=None, y_axis_label=None, x_prefix=None, x_suffix=None, y_prefix=None, y_suffix=None, bin_size=None): # noqa: E501 """HeatmapViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/domain/histogram_view_properties.py b/influxdb2/domain/histogram_view_properties.py index 4660455d..7ad4b7d4 100644 --- a/influxdb2/domain/histogram_view_properties.py +++ b/influxdb2/domain/histogram_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class HistogramViewProperties(object): +class HistogramViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -62,6 +63,7 @@ class HistogramViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, x_column=None, fill_columns=None, x_domain=None, x_axis_label=None, position=None, bin_count=None): # noqa: E501 """HistogramViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/domain/markdown_view_properties.py b/influxdb2/domain/markdown_view_properties.py index cd41a001..13c4785b 100644 --- a/influxdb2/domain/markdown_view_properties.py +++ b/influxdb2/domain/markdown_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class MarkdownViewProperties(object): +class MarkdownViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -44,6 +45,7 @@ class MarkdownViewProperties(object): def __init__(self, type=None, shape=None, note=None): # noqa: E501 """MarkdownViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._shape = None diff --git a/influxdb2/domain/notification_endpoint.py b/influxdb2/domain/notification_endpoint.py index 06d8c5c4..c890041d 100644 --- a/influxdb2/domain/notification_endpoint.py +++ b/influxdb2/domain/notification_endpoint.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_endpoint_base import NotificationEndpointBase -class NotificationEndpoint(object): +class NotificationEndpoint(NotificationEndpointBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,13 +32,30 @@ class NotificationEndpoint(object): and the value is json key in definition. """ openapi_types = { + 'id': 'str', + 'org_id': 'str', + 'user_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'description': 'str', + 'status': 'str', + 'labels': 'list[Label]' } attribute_map = { + 'id': 'id', + 'org_id': 'orgID', + 'user_id': 'userID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'description': 'description', + 'status': 'status', + 'labels': 'labels' } - def __init__(self): # noqa: E501 + def __init__(self, id=None, org_id=None, user_id=None, created_at=None, updated_at=None, description=None, status='active', labels=None): # noqa: E501 """NotificationEndpoint - a model defined in OpenAPI""" # noqa: E501 + NotificationEndpointBase.__init__(self, id=id, org_id=org_id, user_id=user_id, created_at=created_at, updated_at=updated_at, description=description, status=status, labels=labels) self.discriminator = None def to_dict(self): diff --git a/influxdb2/domain/notification_rule.py b/influxdb2/domain/notification_rule.py index 04ec6725..e4215f36 100644 --- a/influxdb2/domain/notification_rule.py +++ b/influxdb2/domain/notification_rule.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_rule_base import NotificationRuleBase -class NotificationRule(object): +class NotificationRule(NotificationRuleBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,13 +32,52 @@ class NotificationRule(object): and the value is json key in definition. """ openapi_types = { + 'id': 'str', + 'notify_endpoint_id': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'status': 'TaskStatusType', + 'name': 'str', + 'sleep_until': 'str', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'runbook_link': 'str', + 'limit_every': 'int', + 'limit': 'int', + 'tag_rules': 'list[TagRule]', + 'description': 'str', + 'status_rules': 'list[StatusRule]', + 'labels': 'list[Label]' } attribute_map = { + 'id': 'id', + 'notify_endpoint_id': 'notifyEndpointID', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'status': 'status', + 'name': 'name', + 'sleep_until': 'sleepUntil', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'runbook_link': 'runbookLink', + 'limit_every': 'limitEvery', + 'limit': 'limit', + 'tag_rules': 'tagRules', + 'description': 'description', + 'status_rules': 'statusRules', + 'labels': 'labels' } - def __init__(self): # noqa: E501 + def __init__(self, id=None, notify_endpoint_id=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, status=None, name=None, sleep_until=None, every=None, offset=None, cron=None, runbook_link=None, limit_every=None, limit=None, tag_rules=None, description=None, status_rules=None, labels=None): # noqa: E501 """NotificationRule - a model defined in OpenAPI""" # noqa: E501 + NotificationRuleBase.__init__(self, id=id, notify_endpoint_id=notify_endpoint_id, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, status=status, name=name, sleep_until=sleep_until, every=every, offset=offset, cron=cron, runbook_link=runbook_link, limit_every=limit_every, limit=limit, tag_rules=tag_rules, description=description, status_rules=status_rules, labels=labels) self.discriminator = None def to_dict(self): diff --git a/influxdb2/domain/pager_duty_notification_endpoint.py b/influxdb2/domain/pager_duty_notification_endpoint.py index 240fb8c2..49a1a7e8 100644 --- a/influxdb2/domain/pager_duty_notification_endpoint.py +++ b/influxdb2/domain/pager_duty_notification_endpoint.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_endpoint_base import NotificationEndpointBase -class PagerDutyNotificationEndpoint(object): +class PagerDutyNotificationEndpoint(NotificationEndpointBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,32 @@ class PagerDutyNotificationEndpoint(object): and the value is json key in definition. """ openapi_types = { - 'name': 'str' + 'name': 'str', + 'id': 'str', + 'org_id': 'str', + 'user_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'description': 'str', + 'status': 'str', + 'labels': 'list[Label]' } attribute_map = { - 'name': 'name' + 'name': 'name', + 'id': 'id', + 'org_id': 'orgID', + 'user_id': 'userID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'description': 'description', + 'status': 'status', + 'labels': 'labels' } - def __init__(self, name=None): # noqa: E501 + def __init__(self, name=None, id=None, org_id=None, user_id=None, created_at=None, updated_at=None, description=None, status='active', labels=None): # noqa: E501 """PagerDutyNotificationEndpoint - a model defined in OpenAPI""" # noqa: E501 + NotificationEndpointBase.__init__(self, id=id, org_id=org_id, user_id=user_id, created_at=created_at, updated_at=updated_at, description=description, status=status, labels=labels) self._name = None self.discriminator = None diff --git a/influxdb2/domain/pager_duty_notification_rule.py b/influxdb2/domain/pager_duty_notification_rule.py index 1fb2b02a..156fd198 100644 --- a/influxdb2/domain/pager_duty_notification_rule.py +++ b/influxdb2/domain/pager_duty_notification_rule.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_rule_base import NotificationRuleBase -class PagerDutyNotificationRule(object): +class PagerDutyNotificationRule(NotificationRuleBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -32,16 +33,55 @@ class PagerDutyNotificationRule(object): """ openapi_types = { 'type': 'str', - 'message_template': 'str' + 'message_template': 'str', + 'id': 'str', + 'notify_endpoint_id': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'status': 'TaskStatusType', + 'name': 'str', + 'sleep_until': 'str', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'runbook_link': 'str', + 'limit_every': 'int', + 'limit': 'int', + 'tag_rules': 'list[TagRule]', + 'description': 'str', + 'status_rules': 'list[StatusRule]', + 'labels': 'list[Label]' } attribute_map = { 'type': 'type', - 'message_template': 'messageTemplate' + 'message_template': 'messageTemplate', + 'id': 'id', + 'notify_endpoint_id': 'notifyEndpointID', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'status': 'status', + 'name': 'name', + 'sleep_until': 'sleepUntil', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'runbook_link': 'runbookLink', + 'limit_every': 'limitEvery', + 'limit': 'limit', + 'tag_rules': 'tagRules', + 'description': 'description', + 'status_rules': 'statusRules', + 'labels': 'labels' } - def __init__(self, type=None, message_template=None): # noqa: E501 + def __init__(self, type=None, message_template=None, id=None, notify_endpoint_id=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, status=None, name=None, sleep_until=None, every=None, offset=None, cron=None, runbook_link=None, limit_every=None, limit=None, tag_rules=None, description=None, status_rules=None, labels=None): # noqa: E501 """PagerDutyNotificationRule - a model defined in OpenAPI""" # noqa: E501 + NotificationRuleBase.__init__(self, id=id, notify_endpoint_id=notify_endpoint_id, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, status=status, name=name, sleep_until=sleep_until, every=every, offset=offset, cron=cron, runbook_link=runbook_link, limit_every=limit_every, limit=limit, tag_rules=tag_rules, description=description, status_rules=status_rules, labels=labels) self._type = None self._message_template = None diff --git a/influxdb2/domain/resource_member.py b/influxdb2/domain/resource_member.py index 273c07b9..fa729abd 100644 --- a/influxdb2/domain/resource_member.py +++ b/influxdb2/domain/resource_member.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.user import User -class ResourceMember(object): +class ResourceMember(User): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,26 @@ class ResourceMember(object): and the value is json key in definition. """ openapi_types = { - 'role': 'str' + 'role': 'str', + 'id': 'str', + 'oauth_id': 'str', + 'name': 'str', + 'status': 'str', + 'links': 'UserLinks' } attribute_map = { - 'role': 'role' + 'role': 'role', + 'id': 'id', + 'oauth_id': 'oauthID', + 'name': 'name', + 'status': 'status', + 'links': 'links' } - def __init__(self, role='member'): # noqa: E501 + def __init__(self, role='member', id=None, oauth_id=None, name=None, status='active', links=None): # noqa: E501 """ResourceMember - a model defined in OpenAPI""" # noqa: E501 + User.__init__(self, id=id, oauth_id=oauth_id, name=name, status=status, links=links) self._role = None self.discriminator = None diff --git a/influxdb2/domain/resource_owner.py b/influxdb2/domain/resource_owner.py index 32d6368d..51aa8c64 100644 --- a/influxdb2/domain/resource_owner.py +++ b/influxdb2/domain/resource_owner.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.user import User -class ResourceOwner(object): +class ResourceOwner(User): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,26 @@ class ResourceOwner(object): and the value is json key in definition. """ openapi_types = { - 'role': 'str' + 'role': 'str', + 'id': 'str', + 'oauth_id': 'str', + 'name': 'str', + 'status': 'str', + 'links': 'UserLinks' } attribute_map = { - 'role': 'role' + 'role': 'role', + 'id': 'id', + 'oauth_id': 'oauthID', + 'name': 'name', + 'status': 'status', + 'links': 'links' } - def __init__(self, role='owner'): # noqa: E501 + def __init__(self, role='owner', id=None, oauth_id=None, name=None, status='active', links=None): # noqa: E501 """ResourceOwner - a model defined in OpenAPI""" # noqa: E501 + User.__init__(self, id=id, oauth_id=oauth_id, name=name, status=status, links=links) self._role = None self.discriminator = None diff --git a/influxdb2/domain/scatter_view_properties.py b/influxdb2/domain/scatter_view_properties.py index d9d83b70..68843e20 100644 --- a/influxdb2/domain/scatter_view_properties.py +++ b/influxdb2/domain/scatter_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class ScatterViewProperties(object): +class ScatterViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -74,6 +75,7 @@ class ScatterViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, x_column=None, y_column=None, fill_columns=None, symbol_columns=None, x_domain=None, y_domain=None, x_axis_label=None, y_axis_label=None, x_prefix=None, x_suffix=None, y_prefix=None, y_suffix=None): # noqa: E501 """ScatterViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/domain/scraper_target_response.py b/influxdb2/domain/scraper_target_response.py index f15e237f..d015ec8a 100644 --- a/influxdb2/domain/scraper_target_response.py +++ b/influxdb2/domain/scraper_target_response.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.scraper_target_request import ScraperTargetRequest -class ScraperTargetResponse(object): +class ScraperTargetResponse(ScraperTargetRequest): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -34,18 +35,29 @@ class ScraperTargetResponse(object): 'id': 'str', 'org': 'str', 'bucket': 'str', - 'links': 'object' + 'links': 'object', + 'name': 'str', + 'type': 'str', + 'url': 'str', + 'org_id': 'str', + 'bucket_id': 'str' } attribute_map = { 'id': 'id', 'org': 'org', 'bucket': 'bucket', - 'links': 'links' + 'links': 'links', + 'name': 'name', + 'type': 'type', + 'url': 'url', + 'org_id': 'orgID', + 'bucket_id': 'bucketID' } - def __init__(self, id=None, org=None, bucket=None, links=None): # noqa: E501 + def __init__(self, id=None, org=None, bucket=None, links=None, name=None, type=None, url=None, org_id=None, bucket_id=None): # noqa: E501 """ScraperTargetResponse - a model defined in OpenAPI""" # noqa: E501 + ScraperTargetRequest.__init__(self, name=name, type=type, url=url, org_id=org_id, bucket_id=bucket_id) self._id = None self._org = None diff --git a/influxdb2/domain/secret_keys_response.py b/influxdb2/domain/secret_keys_response.py index 477e48a2..b1646acb 100644 --- a/influxdb2/domain/secret_keys_response.py +++ b/influxdb2/domain/secret_keys_response.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.secret_keys import SecretKeys -class SecretKeysResponse(object): +class SecretKeysResponse(SecretKeys): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,18 @@ class SecretKeysResponse(object): and the value is json key in definition. """ openapi_types = { - 'links': 'object' + 'links': 'object', + 'secrets': 'list[str]' } attribute_map = { - 'links': 'links' + 'links': 'links', + 'secrets': 'secrets' } - def __init__(self, links=None): # noqa: E501 + def __init__(self, links=None, secrets=None): # noqa: E501 """SecretKeysResponse - a model defined in OpenAPI""" # noqa: E501 + SecretKeys.__init__(self, secrets=secrets) self._links = None self.discriminator = None diff --git a/influxdb2/domain/single_stat_view_properties.py b/influxdb2/domain/single_stat_view_properties.py index b8afa468..0373ca8e 100644 --- a/influxdb2/domain/single_stat_view_properties.py +++ b/influxdb2/domain/single_stat_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class SingleStatViewProperties(object): +class SingleStatViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -58,6 +59,7 @@ class SingleStatViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, prefix=None, suffix=None, legend=None, decimal_places=None): # noqa: E501 """SingleStatViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/domain/slack_notification_endpoint.py b/influxdb2/domain/slack_notification_endpoint.py index 612118d7..bdb13399 100644 --- a/influxdb2/domain/slack_notification_endpoint.py +++ b/influxdb2/domain/slack_notification_endpoint.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_endpoint_base import NotificationEndpointBase -class SlackNotificationEndpoint(object): +class SlackNotificationEndpoint(NotificationEndpointBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,32 @@ class SlackNotificationEndpoint(object): and the value is json key in definition. """ openapi_types = { - 'name': 'str' + 'name': 'str', + 'id': 'str', + 'org_id': 'str', + 'user_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'description': 'str', + 'status': 'str', + 'labels': 'list[Label]' } attribute_map = { - 'name': 'name' + 'name': 'name', + 'id': 'id', + 'org_id': 'orgID', + 'user_id': 'userID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'description': 'description', + 'status': 'status', + 'labels': 'labels' } - def __init__(self, name=None): # noqa: E501 + def __init__(self, name=None, id=None, org_id=None, user_id=None, created_at=None, updated_at=None, description=None, status='active', labels=None): # noqa: E501 """SlackNotificationEndpoint - a model defined in OpenAPI""" # noqa: E501 + NotificationEndpointBase.__init__(self, id=id, org_id=org_id, user_id=user_id, created_at=created_at, updated_at=updated_at, description=description, status=status, labels=labels) self._name = None self.discriminator = None diff --git a/influxdb2/domain/slack_notification_rule.py b/influxdb2/domain/slack_notification_rule.py index 12b0fda1..5c68f6f2 100644 --- a/influxdb2/domain/slack_notification_rule.py +++ b/influxdb2/domain/slack_notification_rule.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_rule_base import NotificationRuleBase -class SlackNotificationRule(object): +class SlackNotificationRule(NotificationRuleBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -33,17 +34,56 @@ class SlackNotificationRule(object): openapi_types = { 'type': 'str', 'channel': 'str', - 'message_template': 'str' + 'message_template': 'str', + 'id': 'str', + 'notify_endpoint_id': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'status': 'TaskStatusType', + 'name': 'str', + 'sleep_until': 'str', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'runbook_link': 'str', + 'limit_every': 'int', + 'limit': 'int', + 'tag_rules': 'list[TagRule]', + 'description': 'str', + 'status_rules': 'list[StatusRule]', + 'labels': 'list[Label]' } attribute_map = { 'type': 'type', 'channel': 'channel', - 'message_template': 'messageTemplate' + 'message_template': 'messageTemplate', + 'id': 'id', + 'notify_endpoint_id': 'notifyEndpointID', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'status': 'status', + 'name': 'name', + 'sleep_until': 'sleepUntil', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'runbook_link': 'runbookLink', + 'limit_every': 'limitEvery', + 'limit': 'limit', + 'tag_rules': 'tagRules', + 'description': 'description', + 'status_rules': 'statusRules', + 'labels': 'labels' } - def __init__(self, type=None, channel=None, message_template=None): # noqa: E501 + def __init__(self, type=None, channel=None, message_template=None, id=None, notify_endpoint_id=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, status=None, name=None, sleep_until=None, every=None, offset=None, cron=None, runbook_link=None, limit_every=None, limit=None, tag_rules=None, description=None, status_rules=None, labels=None): # noqa: E501 """SlackNotificationRule - a model defined in OpenAPI""" # noqa: E501 + NotificationRuleBase.__init__(self, id=id, notify_endpoint_id=notify_endpoint_id, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, status=status, name=name, sleep_until=sleep_until, every=every, offset=offset, cron=cron, runbook_link=runbook_link, limit_every=limit_every, limit=limit, tag_rules=tag_rules, description=description, status_rules=status_rules, labels=labels) self._type = None self._channel = None diff --git a/influxdb2/domain/smtp_notification_endpoint.py b/influxdb2/domain/smtp_notification_endpoint.py index 7fe9fb7b..d277a312 100644 --- a/influxdb2/domain/smtp_notification_endpoint.py +++ b/influxdb2/domain/smtp_notification_endpoint.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_endpoint_base import NotificationEndpointBase -class SMTPNotificationEndpoint(object): +class SMTPNotificationEndpoint(NotificationEndpointBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,32 @@ class SMTPNotificationEndpoint(object): and the value is json key in definition. """ openapi_types = { - 'name': 'str' + 'name': 'str', + 'id': 'str', + 'org_id': 'str', + 'user_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'description': 'str', + 'status': 'str', + 'labels': 'list[Label]' } attribute_map = { - 'name': 'name' + 'name': 'name', + 'id': 'id', + 'org_id': 'orgID', + 'user_id': 'userID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'description': 'description', + 'status': 'status', + 'labels': 'labels' } - def __init__(self, name=None): # noqa: E501 + def __init__(self, name=None, id=None, org_id=None, user_id=None, created_at=None, updated_at=None, description=None, status='active', labels=None): # noqa: E501 """SMTPNotificationEndpoint - a model defined in OpenAPI""" # noqa: E501 + NotificationEndpointBase.__init__(self, id=id, org_id=org_id, user_id=user_id, created_at=created_at, updated_at=updated_at, description=description, status=status, labels=labels) self._name = None self.discriminator = None diff --git a/influxdb2/domain/smtp_notification_rule.py b/influxdb2/domain/smtp_notification_rule.py index f6dbb25d..0db2d986 100644 --- a/influxdb2/domain/smtp_notification_rule.py +++ b/influxdb2/domain/smtp_notification_rule.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_rule_base import NotificationRuleBase -class SMTPNotificationRule(object): +class SMTPNotificationRule(NotificationRuleBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -34,18 +35,57 @@ class SMTPNotificationRule(object): 'type': 'str', 'subject_template': 'str', 'body_template': 'str', - 'to': 'str' + 'to': 'str', + 'id': 'str', + 'notify_endpoint_id': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'status': 'TaskStatusType', + 'name': 'str', + 'sleep_until': 'str', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'runbook_link': 'str', + 'limit_every': 'int', + 'limit': 'int', + 'tag_rules': 'list[TagRule]', + 'description': 'str', + 'status_rules': 'list[StatusRule]', + 'labels': 'list[Label]' } attribute_map = { 'type': 'type', 'subject_template': 'subjectTemplate', 'body_template': 'bodyTemplate', - 'to': 'to' + 'to': 'to', + 'id': 'id', + 'notify_endpoint_id': 'notifyEndpointID', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'status': 'status', + 'name': 'name', + 'sleep_until': 'sleepUntil', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'runbook_link': 'runbookLink', + 'limit_every': 'limitEvery', + 'limit': 'limit', + 'tag_rules': 'tagRules', + 'description': 'description', + 'status_rules': 'statusRules', + 'labels': 'labels' } - def __init__(self, type=None, subject_template=None, body_template=None, to=None): # noqa: E501 + def __init__(self, type=None, subject_template=None, body_template=None, to=None, id=None, notify_endpoint_id=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, status=None, name=None, sleep_until=None, every=None, offset=None, cron=None, runbook_link=None, limit_every=None, limit=None, tag_rules=None, description=None, status_rules=None, labels=None): # noqa: E501 """SMTPNotificationRule - a model defined in OpenAPI""" # noqa: E501 + NotificationRuleBase.__init__(self, id=id, notify_endpoint_id=notify_endpoint_id, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, status=status, name=name, sleep_until=sleep_until, every=every, offset=offset, cron=cron, runbook_link=runbook_link, limit_every=limit_every, limit=limit, tag_rules=tag_rules, description=description, status_rules=status_rules, labels=labels) self._type = None self._subject_template = None diff --git a/influxdb2/domain/table_view_properties.py b/influxdb2/domain/table_view_properties.py index e2ecb3d9..eb6b3917 100644 --- a/influxdb2/domain/table_view_properties.py +++ b/influxdb2/domain/table_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class TableViewProperties(object): +class TableViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -58,6 +59,7 @@ class TableViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, table_options=None, field_options=None, time_format=None, decimal_places=None): # noqa: E501 """TableViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/domain/task.py b/influxdb2/domain/task.py index 3e9d583b..bfeeec73 100644 --- a/influxdb2/domain/task.py +++ b/influxdb2/domain/task.py @@ -11,6 +11,7 @@ import pprint +import re # noqa: F401 import six diff --git a/influxdb2/domain/task_create_request.py b/influxdb2/domain/task_create_request.py index 4f065396..6af8a1fe 100644 --- a/influxdb2/domain/task_create_request.py +++ b/influxdb2/domain/task_create_request.py @@ -11,6 +11,7 @@ import pprint +import re # noqa: F401 import six diff --git a/influxdb2/domain/telegraf.py b/influxdb2/domain/telegraf.py index 8766fef5..e5b417b4 100644 --- a/influxdb2/domain/telegraf.py +++ b/influxdb2/domain/telegraf.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.telegraf_request import TelegrafRequest -class Telegraf(object): +class Telegraf(TelegrafRequest): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -33,17 +34,28 @@ class Telegraf(object): openapi_types = { 'id': 'str', 'links': 'object', - 'labels': 'list[Label]' + 'labels': 'list[Label]', + 'name': 'str', + 'description': 'str', + 'agent': 'TelegrafRequestAgent', + 'plugins': 'list[TelegrafRequestPlugin]', + 'org_id': 'str' } attribute_map = { 'id': 'id', 'links': 'links', - 'labels': 'labels' + 'labels': 'labels', + 'name': 'name', + 'description': 'description', + 'agent': 'agent', + 'plugins': 'plugins', + 'org_id': 'orgID' } - def __init__(self, id=None, links=None, labels=None): # noqa: E501 + def __init__(self, id=None, links=None, labels=None, name=None, description=None, agent=None, plugins=None, org_id=None): # noqa: E501 """Telegraf - a model defined in OpenAPI""" # noqa: E501 + TelegrafRequest.__init__(self, name=name, description=description, agent=agent, plugins=plugins, org_id=org_id) self._id = None self._links = None diff --git a/influxdb2/domain/threshold_check.py b/influxdb2/domain/threshold_check.py index c011e69d..efa2c52b 100644 --- a/influxdb2/domain/threshold_check.py +++ b/influxdb2/domain/threshold_check.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.check_base import CheckBase -class ThresholdCheck(object): +class ThresholdCheck(CheckBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -32,16 +33,47 @@ class ThresholdCheck(object): """ openapi_types = { 'type': 'str', - 'thresholds': 'list[Threshold]' + 'thresholds': 'list[Threshold]', + 'id': 'str', + 'name': 'str', + 'org_id': 'str', + 'authorization_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'query': 'DashboardQuery', + 'status': 'TaskStatusType', + 'every': 'str', + 'offset': 'str', + 'cron': 'str', + 'tags': 'list[CheckBaseTags]', + 'description': 'str', + 'status_message_template': 'str', + 'labels': 'list[Label]' } attribute_map = { 'type': 'type', - 'thresholds': 'thresholds' + 'thresholds': 'thresholds', + 'id': 'id', + 'name': 'name', + 'org_id': 'orgID', + 'authorization_id': 'authorizationID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'query': 'query', + 'status': 'status', + 'every': 'every', + 'offset': 'offset', + 'cron': 'cron', + 'tags': 'tags', + 'description': 'description', + 'status_message_template': 'statusMessageTemplate', + 'labels': 'labels' } - def __init__(self, type=None, thresholds=None): # noqa: E501 + def __init__(self, type=None, thresholds=None, id=None, name=None, org_id=None, authorization_id=None, created_at=None, updated_at=None, query=None, status=None, every=None, offset=None, cron=None, tags=None, description=None, status_message_template=None, labels=None): # noqa: E501 """ThresholdCheck - a model defined in OpenAPI""" # noqa: E501 + CheckBase.__init__(self, id=id, name=name, org_id=org_id, authorization_id=authorization_id, created_at=created_at, updated_at=updated_at, query=query, status=status, every=every, offset=offset, cron=cron, tags=tags, description=description, status_message_template=status_message_template, labels=labels) self._type = None self._thresholds = None diff --git a/influxdb2/domain/webhook_notification_endpoint.py b/influxdb2/domain/webhook_notification_endpoint.py index 15d12a74..1f4a7906 100644 --- a/influxdb2/domain/webhook_notification_endpoint.py +++ b/influxdb2/domain/webhook_notification_endpoint.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.notification_endpoint_base import NotificationEndpointBase -class WebhookNotificationEndpoint(object): +class WebhookNotificationEndpoint(NotificationEndpointBase): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -31,15 +32,32 @@ class WebhookNotificationEndpoint(object): and the value is json key in definition. """ openapi_types = { - 'name': 'str' + 'name': 'str', + 'id': 'str', + 'org_id': 'str', + 'user_id': 'str', + 'created_at': 'datetime', + 'updated_at': 'datetime', + 'description': 'str', + 'status': 'str', + 'labels': 'list[Label]' } attribute_map = { - 'name': 'name' + 'name': 'name', + 'id': 'id', + 'org_id': 'orgID', + 'user_id': 'userID', + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'description': 'description', + 'status': 'status', + 'labels': 'labels' } - def __init__(self, name=None): # noqa: E501 + def __init__(self, name=None, id=None, org_id=None, user_id=None, created_at=None, updated_at=None, description=None, status='active', labels=None): # noqa: E501 """WebhookNotificationEndpoint - a model defined in OpenAPI""" # noqa: E501 + NotificationEndpointBase.__init__(self, id=id, org_id=org_id, user_id=user_id, created_at=created_at, updated_at=updated_at, description=description, status=status, labels=labels) self._name = None self.discriminator = None diff --git a/influxdb2/domain/xy_view_properties.py b/influxdb2/domain/xy_view_properties.py index 8a7108dc..54f3d2a9 100644 --- a/influxdb2/domain/xy_view_properties.py +++ b/influxdb2/domain/xy_view_properties.py @@ -14,9 +14,10 @@ import re # noqa: F401 import six +from influxdb2.domain.view_properties import ViewProperties -class XYViewProperties(object): +class XYViewProperties(ViewProperties): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -62,6 +63,7 @@ class XYViewProperties(object): def __init__(self, type=None, queries=None, colors=None, shape=None, note=None, show_note_when_empty=None, axes=None, legend=None, x_column=None, y_column=None, shade_below=None, geom=None): # noqa: E501 """XYViewProperties - a model defined in OpenAPI""" # noqa: E501 + ViewProperties.__init__(self) self._type = None self._queries = None diff --git a/influxdb2/service/query_service.py b/influxdb2/service/query_service.py index b2eec173..6226933d 100644 --- a/influxdb2/service/query_service.py +++ b/influxdb2/service/query_service.py @@ -12,6 +12,8 @@ from __future__ import absolute_import +import re # noqa: F401 + # python 2 and python 3 compatibility library import six diff --git a/influxdb2/service/write_service.py b/influxdb2/service/write_service.py index 5bf51fb2..7800876a 100644 --- a/influxdb2/service/write_service.py +++ b/influxdb2/service/write_service.py @@ -12,6 +12,8 @@ from __future__ import absolute_import +import re # noqa: F401 + # python 2 and python 3 compatibility library import six diff --git a/influxdb2_test/test_AuthorizationApi.py b/influxdb2_test/test_AuthorizationApi.py index 9d28c124..af0f692d 100644 --- a/influxdb2_test/test_AuthorizationApi.py +++ b/influxdb2_test/test_AuthorizationApi.py @@ -31,8 +31,7 @@ def test_createAuthorization(self): self.assertEqual(authorization.user, self.user.name) self.assertEqual(authorization.org_id, self.organization.id) self.assertEqual(authorization.org, self.organization.name) - # todo - # self.assertEqual(authorization.status, "active") + self.assertEqual(authorization.status, "active") self.assertTrue(len(authorization.permissions) == 2) self.assertEqual(authorization.permissions[0].resource.type, "users") self.assertEqual(authorization.permissions[0].resource.org_id, self.organization.id) @@ -51,17 +50,15 @@ def test_authorizationDescription(self): organization = self.my_organization resource = PermissionResource(org_id=organization.id, type="sources") - createSource = Permission(action="write", resource=resource) + create_source = Permission(action="write", resource=resource) - permissions = [createSource] + permissions = [create_source] authorization = Authorization(org_id=organization.id, permissions=permissions) - # todo - # authorization.setStatus(Authorization.StatusEnum.ACTIVE); - # authorization.setDescription("My description!"); + authorization.status = "active" + authorization.description = "My description!" created = self.authorizations_client.create_authorization(authorization=authorization) self.assertIsNotNone(created) - # todo - # self.assertEqual(created.description, "My description") + self.assertEqual(created.description, "My description!") def test_createAuthorizationTask(self): resource = PermissionResource(org_id=self.organization.id, type="tasks") @@ -144,7 +141,6 @@ def test_findAuthorizationsByOrgNotFound(self): authorizations_by_org_id = self.authorization_api().find_authorizations_by_org_id("ffffffffffffffff") self.assertEqual(len(authorizations_by_org_id), 0) - @pytest.mark.skip("todo inheritence codegen bug") def test_updateAuthorizationStatus(self): resource = PermissionResource(org_id=self.organization.id, type="users") read_user = Permission(action="read", resource=resource) @@ -189,9 +185,8 @@ def test_clone_authorization(self): self.assertEqual(source.user, cloned.user) self.assertEqual(source.org_id, cloned.org_id) self.assertEqual(source.org, cloned.org) - ## todo - # self.assertEqual(source.status, cloned.status) - # self.assertEqual(source.description, cloned.description) + self.assertEqual(source.status, cloned.status) + self.assertEqual(source.description, cloned.description) self.assertTrue(len(cloned.permissions), 1) self.assertEqual(cloned.permissions[0].action, "read") diff --git a/openapi-generator/pom.xml b/openapi-generator/pom.xml index a1237826..1def9716 100644 --- a/openapi-generator/pom.xml +++ b/openapi-generator/pom.xml @@ -139,7 +139,7 @@ UTF-8 - 4.0.2 + 3.3.4 1.0.0 4.8.1 diff --git a/openapi-generator/src/main/java/org/influxdata/codegen/InfluxPythonGenerator.java b/openapi-generator/src/main/java/org/influxdata/codegen/InfluxPythonGenerator.java index de8f841d..a3afef6a 100644 --- a/openapi-generator/src/main/java/org/influxdata/codegen/InfluxPythonGenerator.java +++ b/openapi-generator/src/main/java/org/influxdata/codegen/InfluxPythonGenerator.java @@ -1,9 +1,16 @@ package org.influxdata.codegen; +import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; +import javax.annotation.Nonnull; + +import io.swagger.v3.oas.models.media.Schema; +import org.openapitools.codegen.CodegenModel; import org.openapitools.codegen.languages.PythonClientCodegen; import static org.openapitools.codegen.utils.StringUtils.camelize; @@ -53,6 +60,54 @@ public void processOpts() { .collect(Collectors.toList()); } + @Override + public CodegenModel fromModel(final String name, final Schema model, final Map allDefinitions) { + CodegenModel codegenModel = super.fromModel(name, model, allDefinitions); + + if (name.endsWith("ViewProperties") && !name.equals("ViewProperties")) + { + codegenModel.setParent("ViewProperties"); + codegenModel.setParentSchema("ViewProperties"); + } + + if (allDefinitions.containsKey(name + "Base")) { + codegenModel.setParent(name + "Base"); + codegenModel.setParentSchema(name + "Base"); + } + + if (name.equals("ViewProperties")) { + codegenModel.setReadWriteVars(new ArrayList<>()); + codegenModel.setRequiredVars(new ArrayList<>()); + codegenModel.hasOnlyReadOnly = true; + codegenModel.hasRequired = false; + } + + return codegenModel; + } + + @Override + public Map postProcessAllModels(final Map models) { + + Map allModels = super.postProcessAllModels(models); + + for (Map.Entry entry : allModels.entrySet()) { + + String modelName = entry.getKey(); + Object modelConfig = entry.getValue(); + + CodegenModel model = getModel((HashMap) modelConfig); + + if (model.getParent() != null) { + CodegenModel parentModel = getModel((HashMap) allModels.get(model.getParent())); + model.vendorExtensions.put("x-parent-classFilename", parentModel.getClassFilename()); + model.vendorExtensions.put("x-has-parent-vars", !parentModel.getVars().isEmpty()); + model.vendorExtensions.put("x-parent-vars", parentModel.getVars()); + } + } + + return allModels; + } + @Override public String toApiName(String name) { if (name.length() == 0) { @@ -79,4 +134,12 @@ public String toApiFilename(String name) { // e.g. PhoneNumberService.py => phone_number_service.py return underscore(name) + "_service"; } + + @Nonnull + private CodegenModel getModel(@Nonnull final HashMap modelConfig) { + + HashMap models = (HashMap) ((ArrayList) modelConfig.get("models")).get(0); + + return (CodegenModel) models.get("model"); + } } diff --git a/openapi-generator/src/main/resources/python/model.mustache b/openapi-generator/src/main/resources/python/model.mustache new file mode 100644 index 00000000..fbde6678 --- /dev/null +++ b/openapi-generator/src/main/resources/python/model.mustache @@ -0,0 +1,240 @@ +# coding: utf-8 + +{{>partial_header}} + +import pprint +import re # noqa: F401 + +import six +{{#models}} +{{#model}} +{{#parent}} +from influxdb2.domain.{{{vendorExtensions.x-parent-classFilename}}} import {{{parent}}} +{{/parent}} +{{/model}} +{{/models}} + + +{{#models}} +{{#model}} +class {{classname}}({{#parent}}{{{parent}}}{{/parent}}{{^parent}}object{{/parent}}): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """{{#allowableValues}} + + """ + allowed enum values + """ +{{#enumVars}} + {{name}} = {{{value}}}{{^-last}} +{{/-last}} +{{/enumVars}}{{/allowableValues}} + + """ + Attributes: + openapi_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + openapi_types = { +{{#vars}} + '{{name}}': '{{{dataType}}}'{{#hasMore}},{{/hasMore}}{{^hasMore}}{{#model.vendorExtensions.x-has-parent-vars}},{{/model.vendorExtensions.x-has-parent-vars}}{{/hasMore}} +{{/vars}} +{{#vendorExtensions.x-parent-vars}} + '{{name}}': '{{{dataType}}}'{{#hasMore}},{{/hasMore}} +{{/vendorExtensions.x-parent-vars}} + } + + attribute_map = { +{{#vars}} + '{{name}}': '{{baseName}}'{{#hasMore}},{{/hasMore}}{{^hasMore}}{{#model.vendorExtensions.x-has-parent-vars}},{{/model.vendorExtensions.x-has-parent-vars}}{{/hasMore}} +{{/vars}} +{{#vendorExtensions.x-parent-vars}} + '{{name}}': '{{baseName}}'{{#hasMore}},{{/hasMore}} +{{/vendorExtensions.x-parent-vars}} + } +{{#discriminator}} + + discriminator_value_class_map = { + {{#children}}'{{^vendorExtensions.x-discriminator-value}}{{name}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{vendorExtensions.x-discriminator-value}}}{{/vendorExtensions.x-discriminator-value}}': '{{{classname}}}'{{^-last}}, + {{/-last}}{{/children}} + } +{{/discriminator}} + + def __init__(self{{#vars}}, {{name}}={{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}None{{/defaultValue}}{{/vars}}{{#vendorExtensions.x-parent-vars}}, {{name}}={{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}None{{/defaultValue}}{{/vendorExtensions.x-parent-vars}}): # noqa: E501 + """{{classname}} - a model defined in OpenAPI""" # noqa: E501 +{{#parent}} + {{{parent}}}.__init__(self{{#vendorExtensions.x-parent-vars}}, {{name}}={{name}}{{/vendorExtensions.x-parent-vars}}) +{{/parent}} +{{#vars}}{{#-first}} +{{/-first}} + self._{{name}} = None +{{/vars}} + self.discriminator = {{#discriminator}}'{{{discriminatorName}}}'{{/discriminator}}{{^discriminator}}None{{/discriminator}} +{{#vars}}{{#-first}} +{{/-first}} +{{#required}} + self.{{name}} = {{name}} +{{/required}} +{{^required}} +{{#isNullable}} + self.{{name}} = {{name}} +{{/isNullable}} +{{^isNullable}} + if {{name}} is not None: + self.{{name}} = {{name}} +{{/isNullable}} +{{/required}} +{{/vars}} + +{{#vars}} + @property + def {{name}}(self): + """Gets the {{name}} of this {{classname}}. # noqa: E501 + +{{#description}} + {{{description}}} # noqa: E501 +{{/description}} + + :return: The {{name}} of this {{classname}}. # noqa: E501 + :rtype: {{dataType}} + """ + return self._{{name}} + + @{{name}}.setter + def {{name}}(self, {{name}}): + """Sets the {{name}} of this {{classname}}. + +{{#description}} + {{{description}}} # noqa: E501 +{{/description}} + + :param {{name}}: The {{name}} of this {{classname}}. # noqa: E501 + :type: {{dataType}} + """ +{{^isNullable}} +{{#required}} + if {{name}} is None: + raise ValueError("Invalid value for `{{name}}`, must not be `None`") # noqa: E501 +{{/required}} +{{/isNullable}} +{{#isEnum}} +{{#isContainer}} + allowed_values = [{{#isNullable}}None,{{/isNullable}}{{#allowableValues}}{{#values}}{{#items.isString}}"{{/items.isString}}{{{this}}}{{#items.isString}}"{{/items.isString}}{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}] # noqa: E501 +{{#isListContainer}} + if not set({{{name}}}).issubset(set(allowed_values)): + raise ValueError( + "Invalid values for `{{{name}}}` [{0}], must be a subset of [{1}]" # noqa: E501 + .format(", ".join(map(str, set({{{name}}}) - set(allowed_values))), # noqa: E501 + ", ".join(map(str, allowed_values))) + ) +{{/isListContainer}} +{{#isMapContainer}} + if not set({{{name}}}.keys()).issubset(set(allowed_values)): + raise ValueError( + "Invalid keys in `{{{name}}}` [{0}], must be a subset of [{1}]" # noqa: E501 + .format(", ".join(map(str, set({{{name}}}.keys()) - set(allowed_values))), # noqa: E501 + ", ".join(map(str, allowed_values))) + ) +{{/isMapContainer}} +{{/isContainer}} +{{^isContainer}} + allowed_values = [{{#isNullable}}None,{{/isNullable}}{{#allowableValues}}{{#values}}{{#isString}}"{{/isString}}{{{this}}}{{#isString}}"{{/isString}}{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}] # noqa: E501 + if {{{name}}} not in allowed_values: + raise ValueError( + "Invalid value for `{{{name}}}` ({0}), must be one of {1}" # noqa: E501 + .format({{{name}}}, allowed_values) + ) +{{/isContainer}} +{{/isEnum}} +{{^isEnum}} +{{#hasValidation}} +{{#maxLength}} + if {{name}} is not None and len({{name}}) > {{maxLength}}: + raise ValueError("Invalid value for `{{name}}`, length must be less than or equal to `{{maxLength}}`") # noqa: E501 +{{/maxLength}} +{{#minLength}} + if {{name}} is not None and len({{name}}) < {{minLength}}: + raise ValueError("Invalid value for `{{name}}`, length must be greater than or equal to `{{minLength}}`") # noqa: E501 +{{/minLength}} +{{#maximum}} + if {{name}} is not None and {{name}} >{{#exclusiveMaximum}}={{/exclusiveMaximum}} {{maximum}}: # noqa: E501 + raise ValueError("Invalid value for `{{name}}`, must be a value less than {{^exclusiveMaximum}}or equal to {{/exclusiveMaximum}}`{{maximum}}`") # noqa: E501 +{{/maximum}} +{{#minimum}} + if {{name}} is not None and {{name}} <{{#exclusiveMinimum}}={{/exclusiveMinimum}} {{minimum}}: # noqa: E501 + raise ValueError("Invalid value for `{{name}}`, must be a value greater than {{^exclusiveMinimum}}or equal to {{/exclusiveMinimum}}`{{minimum}}`") # noqa: E501 +{{/minimum}} +{{#pattern}} + if {{name}} is not None and not re.search(r'{{{vendorExtensions.x-regex}}}', {{name}}{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 + raise ValueError(r"Invalid value for `{{name}}`, must be a follow pattern or equal to `{{{pattern}}}`") # noqa: E501 +{{/pattern}} +{{#maxItems}} + if {{name}} is not None and len({{name}}) > {{maxItems}}: + raise ValueError("Invalid value for `{{name}}`, number of items must be less than or equal to `{{maxItems}}`") # noqa: E501 +{{/maxItems}} +{{#minItems}} + if {{name}} is not None and len({{name}}) < {{minItems}}: + raise ValueError("Invalid value for `{{name}}`, number of items must be greater than or equal to `{{minItems}}`") # noqa: E501 +{{/minItems}} +{{/hasValidation}} +{{/isEnum}} + + self._{{name}} = {{name}} + +{{/vars}} +{{#discriminator}} + def get_real_child_model(self, data): + """Returns the real base class specified by the discriminator""" + discriminator_key = self.attribute_map[self.discriminator] + discriminator_value = data[discriminator_key] + return self.discriminator_value_class_map.get(discriminator_value) + +{{/discriminator}} + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.openapi_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, {{classname}}): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other +{{/model}} +{{/models}}