mirror of
https://github.com/thousandeyes/thousandeyes-sdk-python.git
synced 2026-03-22 19:06:50 +00:00
155 lines
7.9 KiB
Python
155 lines
7.9 KiB
Python
# coding: utf-8
|
|
|
|
"""
|
|
Dashboards API
|
|
|
|
Manage ThousandEyes Dashboards.
|
|
|
|
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
|
|
Do not edit the class manually.
|
|
""" # noqa: E501
|
|
|
|
|
|
from __future__ import annotations
|
|
import pprint
|
|
import re # noqa: F401
|
|
import json
|
|
|
|
from datetime import datetime
|
|
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
from thousandeyes_sdk.dashboards.models.api_widget import ApiWidget
|
|
from thousandeyes_sdk.dashboards.models.dashboard_links import DashboardLinks
|
|
from thousandeyes_sdk.dashboards.models.default_timespan import DefaultTimespan
|
|
from typing import Optional, Set
|
|
from typing_extensions import Self
|
|
|
|
class Dashboard(BaseModel):
|
|
"""
|
|
Dashboard upon which this dashboard snapshot is based upon.
|
|
""" # noqa: E501
|
|
global_filter_id: Optional[StrictStr] = Field(default=None, description="Default global dashboard filter ID (obtained from `/dashboards/filters` endpoint).", alias="globalFilterId")
|
|
dashboard_id: Optional[StrictStr] = Field(default=None, description="Identifier of a dashboard.", alias="dashboardId")
|
|
title: Optional[StrictStr] = Field(default=None, description="Title of a dashboard.")
|
|
is_built_in: Optional[StrictBool] = Field(default=None, description="Indicates if a dashboard is built-in. True for built-in dashboards, false for user-created dashboards.", alias="isBuiltIn")
|
|
aid: Optional[StrictStr] = Field(default=None, description="Identifier for the account group associated with a dashboard.")
|
|
created_by: Optional[StrictStr] = Field(default=None, description="Identifier for the user that created a dashboard.", alias="createdBy")
|
|
modified_by: Optional[StrictStr] = Field(default=None, description="Identifier for the user that last modified a dashboard.", alias="modifiedBy")
|
|
modified_date: Optional[datetime] = Field(default=None, description="UTC date/time when a dashboard was last modified (ISO date-time format).", alias="modifiedDate")
|
|
is_private: Optional[StrictBool] = Field(default=None, description="A dashboard can be viewed by other users in the account. If true, only the creator of the dashboard may view it. If false, all users in the same account may view it.", alias="isPrivate")
|
|
is_default_for_user: Optional[StrictBool] = Field(default=None, description="Indicates whether this dashboard is the user's default. True for default, false if not.", alias="isDefaultForUser")
|
|
is_default_for_account: Optional[StrictBool] = Field(default=None, description="Indicates whether this dashboard is the account group's default. True for default, false if not.", alias="isDefaultForAccount")
|
|
widgets: Optional[List[ApiWidget]] = None
|
|
description: Optional[StrictStr] = Field(default=None, description="A text description of the dashboard's purpose and functionality. This information assists users in understanding the dashboard but isn't displayed when viewing a dashboard.")
|
|
default_timespan: Optional[DefaultTimespan] = Field(default=None, alias="defaultTimespan")
|
|
is_global_override: Optional[StrictBool] = Field(default=None, description="When set to `true`, the defaultTimespan is used and overrides the widget's timespan. If set to `false`, the the widget's timespan is used.", alias="isGlobalOverride")
|
|
is_migrated_report: Optional[StrictBool] = Field(default=None, description="True if this dashboard was previously a report.", alias="isMigratedReport")
|
|
links: Optional[DashboardLinks] = Field(default=None, alias="_links")
|
|
__properties: ClassVar[List[str]] = ["globalFilterId", "dashboardId", "title", "isBuiltIn", "aid", "createdBy", "modifiedBy", "modifiedDate", "isPrivate", "isDefaultForUser", "isDefaultForAccount", "widgets", "description", "defaultTimespan", "isGlobalOverride", "isMigratedReport", "_links"]
|
|
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
validate_assignment=True,
|
|
protected_namespaces=(),
|
|
extra="allow",
|
|
)
|
|
|
|
|
|
def to_str(self) -> str:
|
|
"""Returns the string representation of the model using alias"""
|
|
return pprint.pformat(self.model_dump(by_alias=True))
|
|
|
|
def to_json(self) -> str:
|
|
"""Returns the JSON representation of the model using alias"""
|
|
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
|
|
|
|
@classmethod
|
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
"""Create an instance of Dashboard from a JSON string"""
|
|
return cls.from_dict(json.loads(json_str))
|
|
|
|
def to_dict(self) -> Dict[str, Any]:
|
|
"""Return the dictionary representation of the model using alias.
|
|
|
|
This has the following differences from calling pydantic's
|
|
`self.model_dump(by_alias=True)`:
|
|
|
|
* `None` is only added to the output dict for nullable fields that
|
|
were set at model initialization. Other fields with value `None`
|
|
are ignored.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
* OpenAPI `readOnly` fields are excluded.
|
|
"""
|
|
excluded_fields: Set[str] = set([
|
|
"dashboard_id",
|
|
"is_built_in",
|
|
"aid",
|
|
"created_by",
|
|
"modified_by",
|
|
"modified_date",
|
|
"is_default_for_user",
|
|
"is_default_for_account",
|
|
"is_migrated_report",
|
|
])
|
|
|
|
_dict = self.model_dump(
|
|
by_alias=True,
|
|
exclude=excluded_fields,
|
|
exclude_none=True,
|
|
)
|
|
# override the default output from pydantic by calling `to_dict()` of each item in widgets (list)
|
|
_items = []
|
|
if self.widgets:
|
|
for _item in self.widgets:
|
|
if _item:
|
|
_items.append(_item.to_dict())
|
|
_dict['widgets'] = _items
|
|
# override the default output from pydantic by calling `to_dict()` of default_timespan
|
|
if self.default_timespan:
|
|
_dict['defaultTimespan'] = self.default_timespan.to_dict()
|
|
# override the default output from pydantic by calling `to_dict()` of links
|
|
if self.links:
|
|
_dict['_links'] = self.links.to_dict()
|
|
return _dict
|
|
|
|
@classmethod
|
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
"""Create an instance of Dashboard from a dict"""
|
|
if obj is None:
|
|
return None
|
|
|
|
if not isinstance(obj, dict):
|
|
return cls.model_validate(obj)
|
|
|
|
_obj = cls.model_validate({
|
|
"globalFilterId": obj.get("globalFilterId"),
|
|
"dashboardId": obj.get("dashboardId"),
|
|
"title": obj.get("title"),
|
|
"isBuiltIn": obj.get("isBuiltIn"),
|
|
"aid": obj.get("aid"),
|
|
"createdBy": obj.get("createdBy"),
|
|
"modifiedBy": obj.get("modifiedBy"),
|
|
"modifiedDate": obj.get("modifiedDate"),
|
|
"isPrivate": obj.get("isPrivate"),
|
|
"isDefaultForUser": obj.get("isDefaultForUser"),
|
|
"isDefaultForAccount": obj.get("isDefaultForAccount"),
|
|
"widgets": [ApiWidget.from_dict(_item) for _item in obj["widgets"]] if obj.get("widgets") is not None else None,
|
|
"description": obj.get("description"),
|
|
"defaultTimespan": DefaultTimespan.from_dict(obj["defaultTimespan"]) if obj.get("defaultTimespan") is not None else None,
|
|
"isGlobalOverride": obj.get("isGlobalOverride"),
|
|
"isMigratedReport": obj.get("isMigratedReport"),
|
|
"_links": DashboardLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None
|
|
})
|
|
return _obj
|
|
|
|
|