# DO NOT EDIT THIS FILE! # # This file is generated from the CDP specification. If you need to make # changes, edit the generator and regenerate all of the modules. # # CDP domain: DeviceAccess (experimental) from __future__ import annotations from .util import event_class, T_JSON_DICT from dataclasses import dataclass import enum import typing class RequestId(str): ''' Device request id. ''' def to_json(self) -> str: return self @classmethod def from_json(cls, json: str) -> RequestId: return cls(json) def __repr__(self): return 'RequestId({})'.format(super().__repr__()) class DeviceId(str): ''' A device id. ''' def to_json(self) -> str: return self @classmethod def from_json(cls, json: str) -> DeviceId: return cls(json) def __repr__(self): return 'DeviceId({})'.format(super().__repr__()) @dataclass class PromptDevice: ''' Device information displayed in a user prompt to select a device. ''' id_: DeviceId #: Display name as it appears in a device request user prompt. name: str def to_json(self): json = dict() json['id'] = self.id_.to_json() json['name'] = self.name return json @classmethod def from_json(cls, json): return cls( id_=DeviceId.from_json(json['id']), name=str(json['name']), ) def enable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]: ''' Enable events in this domain. ''' cmd_dict: T_JSON_DICT = { 'method': 'DeviceAccess.enable', } json = yield cmd_dict def disable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]: ''' Disable events in this domain. ''' cmd_dict: T_JSON_DICT = { 'method': 'DeviceAccess.disable', } json = yield cmd_dict def select_prompt( id_: RequestId, device_id: DeviceId ) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]: ''' Select a device in response to a DeviceAccess.deviceRequestPrompted event. :param id_: :param device_id: ''' params: T_JSON_DICT = dict() params['id'] = id_.to_json() params['deviceId'] = device_id.to_json() cmd_dict: T_JSON_DICT = { 'method': 'DeviceAccess.selectPrompt', 'params': params, } json = yield cmd_dict def cancel_prompt( id_: RequestId ) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]: ''' Cancel a prompt in response to a DeviceAccess.deviceRequestPrompted event. :param id_: ''' params: T_JSON_DICT = dict() params['id'] = id_.to_json() cmd_dict: T_JSON_DICT = { 'method': 'DeviceAccess.cancelPrompt', 'params': params, } json = yield cmd_dict @event_class('DeviceAccess.deviceRequestPrompted') @dataclass class DeviceRequestPrompted: ''' A device request opened a user prompt to select a device. Respond with the selectPrompt or cancelPrompt command. ''' id_: RequestId devices: typing.List[PromptDevice] @classmethod def from_json(cls, json: T_JSON_DICT) -> DeviceRequestPrompted: return cls( id_=RequestId.from_json(json['id']), devices=[PromptDevice.from_json(i) for i in json['devices']] )