Module smartapp.api.models.smartapp
Expand source code
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import Any, Dict, List, Optional
from uuid import UUID
from pydantic import AnyUrl, BaseModel, Extra, Field, conint, constr
from smartapp.api.models import smartthings
class LifecycleType(Enum):
configuration = 'CONFIGURATION'
install = 'INSTALL'
update = 'UPDATE'
event = 'EVENT'
oauth_callback = 'OAUTH_CALLBACK'
uninstall = 'UNINSTALL'
class SubscriptionType(Enum):
DEVICE = 'DEVICE'
CAPABILITY = 'CAPABILITY'
MODE = 'MODE'
DEVICE_LIFECYCLE = 'DEVICE_LIFECYCLE'
DEVICE_HEALTH = 'DEVICE_HEALTH'
SECURITY_ARM_STATE = 'SECURITY_ARM_STATE'
HUB_HEALTH = 'HUB_HEALTH'
SCENE_LIFECYCLE = 'SCENE_LIFECYCLE'
class EventType(Enum):
DEVICE_COMMANDS_EVENT = 'DEVICE_COMMANDS_EVENT'
DEVICE_EVENT = 'DEVICE_EVENT'
DEVICE_HEALTH_EVENT = 'DEVICE_HEALTH_EVENT'
DEVICE_LIFECYCLE_EVENT = 'DEVICE_LIFECYCLE_EVENT'
HUB_HEALTH_EVENT = 'HUB_HEALTH_EVENT'
MODE_EVENT = 'MODE_EVENT'
SCENE_LIFECYCLE_EVENT = 'SCENE_LIFECYCLE_EVENT'
SECURITY_ARM_STATE_EVENT = 'SECURITY_ARM_STATE_EVENT'
TIMER_EVENT = 'TIMER_EVENT'
INSTALLED_APP_LIFECYCLE_EVENT = 'INSTALLED_APP_LIFECYCLE_EVENT'
WEATHER_EVENT = 'WEATHER_EVENT'
class LifecycleBase(BaseModel):
lifecycle: str
executionId: Optional[str]
locale: Optional[str]
version: Optional[str]
settings: Optional[Dict]
class Phase(Enum):
initialize = 'INITIALIZE'
page = 'PAGE'
class Settings(BaseModel):
__root__: Dict[str, str]
class Option(BaseModel):
id: str
name: str
Permissions = List[str]
Capabilities = List[str]
Options = List[Option]
class Subscription(smartthings.Subscription):
pass
class UpdateEvent(smartthings.DeviceStateEvent):
pass
class SettingType(Enum):
STRING = 'STRING'
DEVICE = 'DEVICE'
PERMISSION = 'PERMISSION'
MODE = 'MODE'
SCENE = 'SCENE'
MESSAGE = 'MESSAGE'
ENUM = 'ENUM'
class SmartAppEventRequest(smartthings.SmartAppEventRequest):
pass
class InitializeData(BaseModel):
name: str
description: str
id: str
permissions: Permissions
firstPageId: str
class PageSetting(BaseModel):
id: str
name: str
description: Optional[str]
type: SettingType
required: bool
multiple: bool
options: Optional[Options]
capabilities: Optional[Capabilities]
permissions: Optional[Permissions]
class PageSection(BaseModel):
name: str
settings: Optional[List[PageSetting]]
class PageData(BaseModel):
pageId: str
name: str
nextPageId: Optional[str]
previousPageId: Optional[str]
complete: bool
sections: Optional[List[PageSection]]
class ConfigurationData(BaseModel):
installedAppId: Optional[str]
phase: Optional[Phase]
pageId: Optional[str]
previousPageId: Optional[str]
config: Optional[smartthings.ConfigMap]
permissions: Optional[List[str]]
settings: Optional[Settings]
initialize: Optional[InitializeData]
page: Optional[PageData]
class ConfirmationData(BaseModel):
appId: str
confirmationUrl: str
class InstalledApp(BaseModel):
installedAppId: Optional[str]
locationId: Optional[str]
config: smartthings.ConfigMap
permissions: Optional[Permissions]
settings: Optional[Settings]
class InstallData(BaseModel):
authToken: Optional[str]
refreshToken: Optional[str]
installedApp: Optional[InstalledApp]
class UpdateData(BaseModel):
authToken: Optional[str]
refreshToken: Optional[str]
installedApp: Optional[InstalledApp]
permissions: Optional[Permissions]
previousConfig: Optional[smartthings.ConfigMap]
previousPermissions: Optional[Permissions]
class LifecycleEvent(BaseModel):
eventType: smartthings.EventType
deviceEvent: Optional[smartthings.DeviceSubscriptionDetail]
deviceLifecycle: Optional[smartthings.DeviceLifecycleDetail]
class EventData(BaseModel):
authToken: Optional[str]
installedApp: Optional[InstalledApp]
events: Optional[List[LifecycleEvent]]
class OAuthCallbackData(BaseModel):
installedAppId: str
urlPath: str
class UninstallData(BaseModel):
installedApp: Optional[InstalledApp]
settings: Optional[Settings]
class PingData(BaseModel):
challenge: str
class Install(LifecycleBase):
installData: InstallData
class Configuration(LifecycleBase):
configurationData: ConfigurationData
class Confirmation(LifecycleBase):
confirmationData: ConfirmationData
class Update(LifecycleBase):
updateData: UpdateData
settings: Optional[Settings]
class Event(LifecycleBase):
eventData: EventData
settings: Optional[Settings]
class DeviceEvent(BaseModel):
deviceId: str
event: smartthings.DeviceStateEvent
class LifecycleResponse(BaseModel):
targetUrl: Optional[str]
installData: Optional[InstallData]
updateData: Optional[UpdateData]
eventData: Optional[EventData]
oAuthCallbackData: Optional[OAuthCallbackData]
uninstallData: Optional[UninstallData]
configurationData: Optional[ConfigurationData]
confirmationData: Optional[ConfirmationData]
pingData: Optional[PingData]
Classes
class Configuration (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Configuration(LifecycleBase): configurationData: ConfigurationDataAncestors
- LifecycleBase
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var configurationData : ConfigurationData
class ConfigurationData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class ConfigurationData(BaseModel): installedAppId: Optional[str] phase: Optional[Phase] pageId: Optional[str] previousPageId: Optional[str] config: Optional[smartthings.ConfigMap] permissions: Optional[List[str]] settings: Optional[Settings] initialize: Optional[InitializeData] page: Optional[PageData]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.ConfigurationData
Class variables
var config : Optional[smartapp.api.models.smartthings.ConfigMap]var initialize : Optional[InitializeData]var installedAppId : Optional[str]var page : Optional[PageData]var pageId : Optional[str]var permissions : Optional[List[str]]var phase : Optional[Phase]var previousPageId : Optional[str]var settings : Optional[Settings]
class Confirmation (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Confirmation(LifecycleBase): confirmationData: ConfirmationDataAncestors
- LifecycleBase
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var confirmationData : ConfirmationData
class ConfirmationData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class ConfirmationData(BaseModel): appId: str confirmationUrl: strAncestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.ConfirmationData
Class variables
var appId : strvar confirmationUrl : str
class DeviceEvent (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class DeviceEvent(BaseModel): deviceId: str event: smartthings.DeviceStateEventAncestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var deviceId : strvar event : smartapp.api.models.smartthings.DeviceStateEvent
class Event (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Event(LifecycleBase): eventData: EventData settings: Optional[Settings]Ancestors
- LifecycleBase
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var eventData : EventDatavar settings : Optional[Settings]
class EventData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class EventData(BaseModel): authToken: Optional[str] installedApp: Optional[InstalledApp] events: Optional[List[LifecycleEvent]]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.EventData
Class variables
var authToken : Optional[str]var events : Optional[List[LifecycleEvent]]var installedApp : Optional[InstalledApp]
class EventType (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class EventType(Enum): DEVICE_COMMANDS_EVENT = 'DEVICE_COMMANDS_EVENT' DEVICE_EVENT = 'DEVICE_EVENT' DEVICE_HEALTH_EVENT = 'DEVICE_HEALTH_EVENT' DEVICE_LIFECYCLE_EVENT = 'DEVICE_LIFECYCLE_EVENT' HUB_HEALTH_EVENT = 'HUB_HEALTH_EVENT' MODE_EVENT = 'MODE_EVENT' SCENE_LIFECYCLE_EVENT = 'SCENE_LIFECYCLE_EVENT' SECURITY_ARM_STATE_EVENT = 'SECURITY_ARM_STATE_EVENT' TIMER_EVENT = 'TIMER_EVENT' INSTALLED_APP_LIFECYCLE_EVENT = 'INSTALLED_APP_LIFECYCLE_EVENT' WEATHER_EVENT = 'WEATHER_EVENT'Ancestors
- enum.Enum
Class variables
var DEVICE_COMMANDS_EVENTvar DEVICE_EVENTvar DEVICE_HEALTH_EVENTvar DEVICE_LIFECYCLE_EVENTvar HUB_HEALTH_EVENTvar INSTALLED_APP_LIFECYCLE_EVENTvar MODE_EVENTvar SCENE_LIFECYCLE_EVENTvar SECURITY_ARM_STATE_EVENTvar TIMER_EVENTvar WEATHER_EVENT
class InitializeData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class InitializeData(BaseModel): name: str description: str id: str permissions: Permissions firstPageId: strAncestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.InitializeData
Class variables
var description : strvar firstPageId : strvar id : strvar name : strvar permissions : List[str]
class Install (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Install(LifecycleBase): installData: InstallDataAncestors
- LifecycleBase
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var installData : InstallData
class InstallData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class InstallData(BaseModel): authToken: Optional[str] refreshToken: Optional[str] installedApp: Optional[InstalledApp]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.InstallData
Class variables
var authToken : Optional[str]var installedApp : Optional[InstalledApp]var refreshToken : Optional[str]
class InstalledApp (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class InstalledApp(BaseModel): installedAppId: Optional[str] locationId: Optional[str] config: smartthings.ConfigMap permissions: Optional[Permissions] settings: Optional[Settings]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.InstalledApp
Class variables
var config : smartapp.api.models.smartthings.ConfigMapvar installedAppId : Optional[str]var locationId : Optional[str]var permissions : Optional[List[str]]var settings : Optional[Settings]
class LifecycleBase (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class LifecycleBase(BaseModel): lifecycle: str executionId: Optional[str] locale: Optional[str] version: Optional[str] settings: Optional[Dict]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
Class variables
var executionId : Optional[str]var lifecycle : strvar locale : Optional[str]var settings : Optional[Dict[~KT, ~VT]]var version : Optional[str]
class LifecycleEvent (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class LifecycleEvent(BaseModel): eventType: smartthings.EventType deviceEvent: Optional[smartthings.DeviceSubscriptionDetail] deviceLifecycle: Optional[smartthings.DeviceLifecycleDetail]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.LifecycleEvent
Class variables
var deviceEvent : Optional[smartapp.api.models.smartthings.DeviceSubscriptionDetail]var deviceLifecycle : Optional[smartapp.api.models.smartthings.DeviceLifecycleDetail]var eventType : smartapp.api.models.smartthings.EventType
class LifecycleResponse (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class LifecycleResponse(BaseModel): targetUrl: Optional[str] installData: Optional[InstallData] updateData: Optional[UpdateData] eventData: Optional[EventData] oAuthCallbackData: Optional[OAuthCallbackData] uninstallData: Optional[UninstallData] configurationData: Optional[ConfigurationData] confirmationData: Optional[ConfirmationData] pingData: Optional[PingData]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.LifecycleResponse
Class variables
var configurationData : Optional[ConfigurationData]var confirmationData : Optional[ConfirmationData]var eventData : Optional[EventData]var installData : Optional[InstallData]var oAuthCallbackData : Optional[OAuthCallbackData]var pingData : Optional[PingData]var targetUrl : Optional[str]var uninstallData : Optional[UninstallData]var updateData : Optional[UpdateData]
class LifecycleType (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class LifecycleType(Enum): configuration = 'CONFIGURATION' install = 'INSTALL' update = 'UPDATE' event = 'EVENT' oauth_callback = 'OAUTH_CALLBACK' uninstall = 'UNINSTALL'Ancestors
- enum.Enum
Class variables
var configurationvar eventvar installvar oauth_callbackvar uninstallvar update
class OAuthCallbackData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class OAuthCallbackData(BaseModel): installedAppId: str urlPath: strAncestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.OAuthCallbackData
Class variables
var installedAppId : strvar urlPath : str
class Option (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Option(BaseModel): id: str name: strAncestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.Option
Class variables
var id : strvar name : str
class PageData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class PageData(BaseModel): pageId: str name: str nextPageId: Optional[str] previousPageId: Optional[str] complete: bool sections: Optional[List[PageSection]]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.PageData
- Page
Class variables
var complete : boolvar name : strvar nextPageId : Optional[str]var pageId : strvar previousPageId : Optional[str]var sections : Optional[List[PageSection]]
class PageSection (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class PageSection(BaseModel): name: str settings: Optional[List[PageSetting]]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.PageSection
- Section
Class variables
var name : strvar settings : Optional[List[PageSetting]]
class PageSetting (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class PageSetting(BaseModel): id: str name: str description: Optional[str] type: SettingType required: bool multiple: bool options: Optional[Options] capabilities: Optional[Capabilities] permissions: Optional[Permissions]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.PageSetting
- Setting
Class variables
var capabilities : Optional[List[str]]var description : Optional[str]var id : strvar multiple : boolvar name : strvar options : Optional[List[Option]]var permissions : Optional[List[str]]var required : boolvar type : SettingType
class Phase (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class Phase(Enum): initialize = 'INITIALIZE' page = 'PAGE'Ancestors
- enum.Enum
Class variables
var initializevar page
class PingData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class PingData(BaseModel): challenge: strAncestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.PingData
Class variables
var challenge : str
class SettingType (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class SettingType(Enum): STRING = 'STRING' DEVICE = 'DEVICE' PERMISSION = 'PERMISSION' MODE = 'MODE' SCENE = 'SCENE' MESSAGE = 'MESSAGE' ENUM = 'ENUM'Ancestors
- enum.Enum
Class variables
var DEVICEvar ENUMvar MESSAGEvar MODEvar PERMISSIONvar SCENEvar STRING
class Settings (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Settings(BaseModel): __root__: Dict[str, str]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.Settings
class SmartAppEventRequest (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class SmartAppEventRequest(smartthings.SmartAppEventRequest): passAncestors
- smartapp.api.models.smartthings.SmartAppEventRequest
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var attributes : Optional[Dict[str, str]]var name : Optional[str]
class Subscription (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Subscription(smartthings.Subscription): passAncestors
- smartapp.api.models.smartthings.Subscription
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var capability : Optional[smartapp.api.models.smartthings.CapabilitySubscriptionDetail]var device : Optional[smartapp.api.models.smartthings.DeviceSubscriptionDetail]var deviceHealth : Optional[smartapp.api.models.smartthings.DeviceHealthDetail]var deviceLifecycle : Optional[smartapp.api.models.smartthings.DeviceLifecycleDetail]var hubHealth : Optional[smartapp.api.models.smartthings.HubHealthDetail]var id : Optional[str]var installedAppId : Optional[str]var mode : Optional[smartapp.api.models.smartthings.ModeSubscriptionDetail]var sceneLifecycle : Optional[smartapp.api.models.smartthings.SceneLifecycleDetail]var securityArmState : Optional[smartapp.api.models.smartthings.SecurityArmStateDetail]var sourceType : Optional[smartapp.api.models.smartthings.SubscriptionSource]
class SubscriptionType (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class SubscriptionType(Enum): DEVICE = 'DEVICE' CAPABILITY = 'CAPABILITY' MODE = 'MODE' DEVICE_LIFECYCLE = 'DEVICE_LIFECYCLE' DEVICE_HEALTH = 'DEVICE_HEALTH' SECURITY_ARM_STATE = 'SECURITY_ARM_STATE' HUB_HEALTH = 'HUB_HEALTH' SCENE_LIFECYCLE = 'SCENE_LIFECYCLE'Ancestors
- enum.Enum
Class variables
var CAPABILITYvar DEVICEvar DEVICE_HEALTHvar DEVICE_LIFECYCLEvar HUB_HEALTHvar MODEvar SCENE_LIFECYCLEvar SECURITY_ARM_STATE
class UninstallData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class UninstallData(BaseModel): installedApp: Optional[InstalledApp] settings: Optional[Settings]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.UninstallData
Class variables
var installedApp : Optional[InstalledApp]var settings : Optional[Settings]
class Update (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Update(LifecycleBase): updateData: UpdateData settings: Optional[Settings]Ancestors
- LifecycleBase
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var settings : Optional[Settings]var updateData : UpdateData
class UpdateData (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class UpdateData(BaseModel): authToken: Optional[str] refreshToken: Optional[str] installedApp: Optional[InstalledApp] permissions: Optional[Permissions] previousConfig: Optional[smartthings.ConfigMap] previousPermissions: Optional[Permissions]Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Subclasses
- pydantic.main.UpdateData
Class variables
var authToken : Optional[str]var installedApp : Optional[InstalledApp]var permissions : Optional[List[str]]var previousConfig : Optional[smartapp.api.models.smartthings.ConfigMap]var previousPermissions : Optional[List[str]]var refreshToken : Optional[str]
class UpdateEvent (**data: Any)-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class UpdateEvent(smartthings.DeviceStateEvent): passAncestors
- smartapp.api.models.smartthings.DeviceStateEvent
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var attribute : Optional[str]var capability : Optional[str]var component : Optional[str]var data : Optional[Dict[str, Dict[str, Any]]]var unit : Optional[str]var value : Any