from typing import Optional, List
from validator_collection import validators
from highcharts_stock.decorators import class_sensitive
from highcharts_stock.metaclasses import HighchartsMeta
[docs]class Definition(HighchartsMeta):
    """Definition of a symbol for a single Stock Tools button."""
    def __init__(self, **kwargs):
        self._symbol = None
        self.symbol = kwargs.get('symbol', None)
    @property
    def symbol(self) -> Optional[str]:
        """The name of the icon to use for the button.
        :rtype: :class:`str <python:str>` or :obj:`None <python:None>`
        """
        return self._symbol
    @symbol.setter
    def symbol(self, value):
        self._symbol = validators.path(value, allow_empty = True)
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'symbol': as_dict.get('symbol', None)
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'symbol': self.symbol
        }
        return untrimmed 
[docs]class AdvancedDefinitions(HighchartsMeta):
    """Definition of the icons used for Advanced stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._fibonacci = None
        self._fibonacci_time_zones = None
        self._parallel_channel = None
        self._pitchfork = None
        self._time_cycles = None
        self.items = kwargs.get('items', None)
        self.fibonacci = kwargs.get('fibonacci', None)
        self.fibonacci_time_zones = kwargs.get('fibonacci_time_zones', None)
        self.parallel_channel = kwargs.get('parallel_channel', None)
        self.pitchfork = kwargs.get('pitchfork', None)
        self.time_cycles = kwargs.get('time_cycles', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def fibonacci(self) -> Optional[Definition]:
        """Icon configuration for the fibonacci tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'fibonacci.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._fibonacci
    @fibonacci.setter
    @class_sensitive(Definition)
    def fibonacci(self, value):
        self._fibonacci = value
    @property
    def fibonacci_time_zones(self) -> Optional[Definition]:
        """Icon configuration for the fibonacci_time_zones tool. If
        :obj:`None <python:None>`, defaults to: ``{ symbol: 'fibonacci-timezone.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._fibonacci_time_zones
    @fibonacci_time_zones.setter
    @class_sensitive(Definition)
    def fibonacci_time_zones(self, value):
        self._fibonacci_time_zones = value
    @property
    def parallel_channel(self) -> Optional[Definition]:
        """Icon configuration for the parallel channel tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'parallel channel.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._parallel_channel
    @parallel_channel.setter
    @class_sensitive(Definition)
    def parallel_channel(self, value):
        self._parallel_channel = value
    @property
    def pitchfork(self) -> Optional[Definition]:
        """Icon configuration for the pitchfork tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'pitchfork.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._pitchfork
    @pitchfork.setter
    @class_sensitive(Definition)
    def pitchfork(self, value):
        self._pitchfork = value
    @property
    def time_cycles(self) -> Optional[Definition]:
        """Icon configuration for the time cycles tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'time-cycles.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._time_cycles
    @time_cycles.setter
    @class_sensitive(Definition)
    def time_cycles(self, value):
        self._time_cycles = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'fibonacci': as_dict.get('fibonacci', None),
            'fibonacci_time_zones': as_dict.get('fibonacciTimeZones', None),
            'parallel_channel': as_dict.get('parallelChannel', None),
            'pitchfork': as_dict.get('pitchfork', None),
            'time_cycles': as_dict.get('timeCycles', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'fibonacci': self.fibonacci,
            'fibonacciTimeZones': self.fibonacci_time_zones,
            'parallelChannel': self.parallel_channel,
            'pitchfork': self.pitchfork,
            'timeCycles': self.time_cycles,
        }
        return untrimmed 
[docs]class CrookedLinesDefinitions(HighchartsMeta):
    """Definition of the icons used for the Crooked Lines stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._crooked3 = None
        self._crooked5 = None
        self._elliott3 = None
        self._elliott5 = None
        self.items = kwargs.get('items', None)
        self.crooked3 = kwargs.get('crooked3', None)
        self.crooked5 = kwargs.get('crooked5', None)
        self.elliott3 = kwargs.get('elliott3', None)
        self.elliott5 = kwargs.get('elliott5', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def crooked3(self) -> Optional[Definition]:
        """Icon configuration for the crooked3 tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'crooked-3.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._crooked3
    @crooked3.setter
    @class_sensitive(Definition)
    def crooked3(self, value):
        self._crooked3 = value
    @property
    def crooked5(self) -> Optional[Definition]:
        """Icon configuration for the crooked5 tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'crooked-5.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._crooked5
    @crooked5.setter
    @class_sensitive(Definition)
    def crooked5(self, value):
        self._crooked5 = value
    @property
    def elliott3(self) -> Optional[Definition]:
        """Icon configuration for the elliott3 tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'elliott-3.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._elliott3
    @elliott3.setter
    @class_sensitive(Definition)
    def elliott3(self, value):
        self._elliott3 = value
    @property
    def elliott5(self) -> Optional[Definition]:
        """Icon configuration for the elliott5 tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'elliott-5.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._elliott5
    @elliott5.setter
    @class_sensitive(Definition)
    def elliott5(self, value):
        self._elliott5 = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'crooked3': as_dict.get('crooked3', None),
            'crooked5': as_dict.get('crooked5', None),
            'elliott3': as_dict.get('elliott3', None),
            'elliott5': as_dict.get('elliott5', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'crooked3': self.crooked3,
            'crooked5': self.crooked5,
            'elliott3': self.elliott3,
            'elliott5': self.elliott5,
        }
        return untrimmed 
[docs]class FlagsDefinitions(HighchartsMeta):
    """Definition of the icons used for Flags stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._flag_circlepin = None
        self._flag_diamondpin = None
        self._flag_simplepin = None
        self._flag_squarepin = None
        self.items = kwargs.get('items', None)
        self.flag_circlepin = kwargs.get('flag_circlepin', None)
        self.flag_diamondpin = kwargs.get('flag_diamondpin', None)
        self.flag_simplepin = kwargs.get('flag_simplepin', None)
        self.flag_squarepin = kwargs.get('flag_squarepin', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def flag_circlepin(self) -> Optional[Definition]:
        """Icon configuration for the flag circlepin tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'flag-elipse.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._flag_circlepin
    @flag_circlepin.setter
    @class_sensitive(Definition)
    def flag_circlepin(self, value):
        self._flag_circlepin = value
    @property
    def flag_diamondpin(self) -> Optional[Definition]:
        """Icon configuration for the flag diamondpin tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'flag-diamond.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._flag_diamondpin
    @flag_diamondpin.setter
    @class_sensitive(Definition)
    def flag_diamondpin(self, value):
        self._flag_diamondpin = value
    @property
    def flag_simplepin(self) -> Optional[Definition]:
        """Icon configuration for the flag simplepin tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'flag-basic.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._flag_simplepin
    @flag_simplepin.setter
    @class_sensitive(Definition)
    def flag_simplepin(self, value):
        self._flag_simplepin = value
    @property
    def flag_squarepin(self) -> Optional[Definition]:
        """Icon configuration for the flag squarepin tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'flag_trapeze.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._flag_squarepin
    @flag_squarepin.setter
    @class_sensitive(Definition)
    def flag_squarepin(self, value):
        self._flag_squarepin = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'flag_circlepin': as_dict.get('flagCirclepin', None),
            'flag_diamondpin': as_dict.get('flagDiamondpin', None),
            'flag_simplepin': as_dict.get('flagSimplepin', None),
            'flag_squarepin': as_dict.get('flagSquarepin', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'flagCirclepin': self.flag_circlepin,
            'flagDiamondpin': self.flag_diamondpin,
            'flagSimplepin': self.flag_simplepin,
            'flagSquarepin': self.flag_squarepin,
        }
        return untrimmed 
[docs]class LinesDefinitions(HighchartsMeta):
    """Definition of the icons used for Lines stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._arrow_infinity_line = None
        self._arrow_ray = None
        self._arrow_segment = None
        self._horizontal_line = None
        self._line = None
        self._ray = None
        self._segment = None
        self._vertical_line = None
        self.items = kwargs.get('items', None)
        self.arrow_infinity_line = kwargs.get('arrow_infinity_line', None)
        self.arrow_ray = kwargs.get('arrow_ray', None)
        self.arrow_segment = kwargs.get('arrow_segment', None)
        self.horizontal_line = kwargs.get('horizontal_line', None)
        self.line = kwargs.get('line', None)
        self.ray = kwargs.get('ray', None)
        self.segment = kwargs.get('segment', None)
        self.vertical_line = kwargs.get('vertical_line', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def arrow_infinity_line(self) -> Optional[Definition]:
        """Icon configuration for the arrow_infinity_line tool. If
        :obj:`None <python:None>`, defaults to: ``{ symbol: 'arrow-line.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._arrow_infinity_line
    @arrow_infinity_line.setter
    @class_sensitive(Definition)
    def arrow_infinity_line(self, value):
        self._arrow_infinity_line = value
    @property
    def arrow_ray(self) -> Optional[Definition]:
        """Icon configuration for the arrow_ray tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'arrow-ray.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._arrow_ray
    @arrow_ray.setter
    @class_sensitive(Definition)
    def arrow_ray(self, value):
        self._arrow_ray = value
    @property
    def arrow_segment(self) -> Optional[Definition]:
        """Icon configuration for the arrow segment tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'arrow-segment.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._arrow_segment
    @arrow_segment.setter
    @class_sensitive(Definition)
    def arrow_segment(self, value):
        self._arrow_segment = value
    @property
    def horizontal_line(self) -> Optional[Definition]:
        """Icon configuration for the horizontal_line tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'horizontal-line.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._horizontal_line
    @horizontal_line.setter
    @class_sensitive(Definition)
    def horizontal_line(self, value):
        self._horizontal_line = value
    @property
    def line(self) -> Optional[Definition]:
        """Icon configuration for the line tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'line.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._line
    @line.setter
    @class_sensitive(Definition)
    def line(self, value):
        self._line = value
    @property
    def ray(self) -> Optional[Definition]:
        """Icon configuration for the ray tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'ray.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._ray
    @ray.setter
    @class_sensitive(Definition)
    def ray(self, value):
        self._ray = value
    @property
    def segment(self) -> Optional[Definition]:
        """Icon configuration for the segment tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'segment.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._segment
    @segment.setter
    @class_sensitive(Definition)
    def segment(self, value):
        self._segment = value
    @property
    def vertical_line(self) -> Optional[Definition]:
        """Icon configuration for the vertical line tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'vertical-line.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._vertical_line
    @vertical_line.setter
    @class_sensitive(Definition)
    def vertical_line(self, value):
        self._vertical_line = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'arrow_infinity_line': as_dict.get('arrowInfinityLine', None),
            'arrow_ray': as_dict.get('arrowRay', None),
            'arrow_segment': as_dict.get('arrowSegment', None),
            'horizontal_line': as_dict.get('horizontalLine', None),
            'line': as_dict.get('line', None),
            'ray': as_dict.get('ray', None),
            'segment': as_dict.get('segment', None),
            'vertical_line': as_dict.get('verticalLine', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'arrowInfinityLine': self.arrow_infinity_line,
            'arrowRay': self.arrow_ray,
            'arrowSegment': self.arrow_segment,
            'horizontalLine': self.horizontal_line,
            'line': self.line,
            'ray': self.ray,
            'segment': self.segment,
            'verticalLine': self.vertical_line,
        }
        return untrimmed 
[docs]class MeasureDefinitions(HighchartsMeta):
    """Definition of the icons used for Measure stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._measure_x = None
        self._measure_xy = None
        self._measure_y = None
        self.items = kwargs.get('items', None)
        self.measure_x = kwargs.get('measure_x', None)
        self.measure_xy = kwargs.get('measure_xy', None)
        self.measure_y = kwargs.get('measure_y', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def measure_x(self) -> Optional[Definition]:
        """Icon configuration for the measure_x tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'measure-x.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._measure_x
    @measure_x.setter
    @class_sensitive(Definition)
    def measure_x(self, value):
        self._measure_x = value
    @property
    def measure_xy(self) -> Optional[Definition]:
        """Icon configuration for the measure XY tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'measure-xy.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._measure_xy
    @measure_xy.setter
    @class_sensitive(Definition)
    def measure_xy(self, value):
        self._measure_xy = value
    @property
    def measure_y(self) -> Optional[Definition]:
        """Icon configuration for the measure y tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'measure-y.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._measure_y
    @measure_y.setter
    @class_sensitive(Definition)
    def measure_y(self, value):
        self._measure_y = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'measure_x': as_dict.get('measureX', None),
            'measure_xy': as_dict.get('measureXY', None),
            'measure_y': as_dict.get('measureY', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'measureX': self.measure_x,
            'measureXY': self.measure_xy,
            'measureY': self.measure_y,
        }
        return untrimmed 
[docs]class SimpleShapesDefinitions(HighchartsMeta):
    """Definition of the icons used for Simple Shapes stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._circle = None
        self._ellipse = None
        self._label = None
        self._rectangle = None
        self.items = kwargs.get('items', None)
        self.circle = kwargs.get('circle', None)
        self.ellipse = kwargs.get('ellipse', None)
        self.label = kwargs.get('label', None)
        self.rectangle = kwargs.get('rectangle', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def circle(self) -> Optional[Definition]:
        """Icon configuration for the circle tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'circle.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._circle
    @circle.setter
    @class_sensitive(Definition)
    def circle(self, value):
        self._circle = value
    @property
    def ellipse(self) -> Optional[Definition]:
        """Icon configuration for the ellipse tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'ellipse.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._ellipse
    @ellipse.setter
    @class_sensitive(Definition)
    def ellipse(self, value):
        self._ellipse = value
    @property
    def label(self) -> Optional[Definition]:
        """Icon configuration for the label tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'label.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._label
    @label.setter
    @class_sensitive(Definition)
    def label(self, value):
        self._label = value
    @property
    def rectangle(self) -> Optional[Definition]:
        """Icon configuration for the rectangle tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'rectangle.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._rectangle
    @rectangle.setter
    @class_sensitive(Definition)
    def rectangle(self, value):
        self._rectangle = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'circle': as_dict.get('circle', None),
            'ellipse': as_dict.get('ellipse', None),
            'label': as_dict.get('label', None),
            'rectangle': as_dict.get('rectangle', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'circle': self.circle,
            'ellipse': self.ellipse,
            'label': self.label,
            'rectangle': self.rectangle,
        }
        return untrimmed 
[docs]class TypeChangeDefinitions(HighchartsMeta):
    """Definition of the icons used for TypeChange stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._type_candlestick = None
        self._type_heikin_ashi = None
        self._type_hlc = None
        self._type_hollow_candlestick = None
        self._type_line = None
        self._type_ohlc = None
        self.items = kwargs.get('items', None)
        self.type_candlestick = kwargs.get('type_candlestick', None)
        self.type_heikin_ashi = kwargs.get('type_heikin_ashi', None)
        self.type_hlc = kwargs.get('type_hlc', None)
        self.type_hollow_candlestick = kwargs.get('type_hollow_candlestick', None)
        self.type_line = kwargs.get('type_line', None)
        self.type_ohlc = kwargs.get('type_ohlc', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def type_candlestick(self) -> Optional[Definition]:
        """Icon configuration for the type candlestick tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'series-candlestick.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._type_candlestick
    @type_candlestick.setter
    @class_sensitive(Definition)
    def type_candlestick(self, value):
        self._type_candlestick = value
    @property
    def type_heikin_ashi(self) -> Optional[Definition]:
        """Icon configuration for the type heikin_ashi tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'series-heikin-ashi.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._type_heikin_ashi
    @type_heikin_ashi.setter
    @class_sensitive(Definition)
    def type_heikin_ashi(self, value):
        self._type_heikin_ashi = value
    @property
    def type_hlc(self) -> Optional[Definition]:
        """Icon configuration for the type hlc tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'series-hlc.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._type_hlc
    @type_hlc.setter
    @class_sensitive(Definition)
    def type_hlc(self, value):
        self._type_hlc = value
    @property
    def type_hollow_candlestick(self) -> Optional[Definition]:
        """Icon configuration for the type hollow_candlestick tool. If
        :obj:`None <python:None>`, defaults to:
        ``{ symbol: 'series-hollow-candlestick.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._type_hollow_candlestick
    @type_hollow_candlestick.setter
    @class_sensitive(Definition)
    def type_hollow_candlestick(self, value):
        self._type_hollow_candlestick = value
    @property
    def type_line(self) -> Optional[Definition]:
        """Icon configuration for the type line tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'series-line.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._type_line
    @type_line.setter
    @class_sensitive(Definition)
    def type_line(self, value):
        self._type_line = value
    @property
    def type_ohlc(self) -> Optional[Definition]:
        """Icon configuration for the type ohlc tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'series-ohlc.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._type_ohlc
    @type_ohlc.setter
    @class_sensitive(Definition)
    def type_ohlc(self, value):
        self._type_ohlc = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'type_candlestick': as_dict.get('typeCandlestick', None),
            'type_heikin_ashi': as_dict.get('typeHeikinAshi', None),
            'type_hlc': as_dict.get('typeHLC', None),
            'type_hollow_candlestick': as_dict.get('typeHollowCandlestick', None),
            'type_line': as_dict.get('typeLine', None),
            'type_ohlc': as_dict.get('typeOHLC', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'typeCandlestick': self.type_candlestick,
            'typeHeikinAshi': self.type_heikin_ashi,
            'typeHLC': self.type_hlc,
            'typeHollowCandlestick': self.type_hollow_candlestick,
            'typeLine': self.type_line,
            'typeOHLC': self.type_ohlc,
        }
        return untrimmed 
[docs]class VerticalLabelsDefinitions(HighchartsMeta):
    """Definition of the icons used for VerticalLabels stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._vertical_arrow = None
        self._vertical_counter = None
        self._vertical_label = None
        self.items = kwargs.get('items', None)
        self.vertical_arrow = kwargs.get('vertical_arrow', None)
        self.vertical_counter = kwargs.get('vertical_counter', None)
        self.vertical_label = kwargs.get('vertical_label', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def vertical_arrow(self) -> Optional[Definition]:
        """Icon configuration for the vertical arrow tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'vertical-arrow.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._vertical_arrow
    @vertical_arrow.setter
    @class_sensitive(Definition)
    def vertical_arrow(self, value):
        self._vertical_arrow = value
    @property
    def vertical_counter(self) -> Optional[Definition]:
        """Icon configuration for the vertical counter tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'vertical-counter.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._vertical_counter
    @vertical_counter.setter
    @class_sensitive(Definition)
    def vertical_counter(self, value):
        self._vertical_counter = value
    @property
    def vertical_label(self) -> Optional[Definition]:
        """Icon configuration for the vertical label tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'vertical-label.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._vertical_label
    @vertical_label.setter
    @class_sensitive(Definition)
    def vertical_label(self, value):
        self._vertical_label = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'vertical_arrow': as_dict.get('verticalArrow', None),
            'vertical_counter': as_dict.get('verticalCounter', None),
            'vertical_label': as_dict.get('verticalLabel', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'verticalArrow': self.vertical_arrow,
            'verticalCounter': self.vertical_counter,
            'verticalLabel': self.vertical_label,
        }
        return untrimmed 
[docs]class ZoomChangeDefinitions(HighchartsMeta):
    """Definition of the icons used for ZoomChange stock tools."""
    def __init__(self, **kwargs):
        self._items = None
        self._zoom_x = None
        self._zoom_xy = None
        self._zoom_y = None
        self.items = kwargs.get('items', None)
        self.zoom_x = kwargs.get('zoom_x', None)
        self.zoom_xy = kwargs.get('zoom_xy', None)
        self.zoom_y = kwargs.get('zoom_y', None)
    @property
    def items(self) -> Optional[List[str]]:
        """A collection of strings pointing to the properties that configure the relevant
        items.
        :rtype: :class:`list <python:list>` of :class:`str <python:str>`, or
          :obj:`None <python:None>`
        """
        return self._items
    @items.setter
    def items(self, value):
        if not value:
            self._items = None
        else:
            value = validators.iterable(value)
            self._items = [validators.string(x) for x in value]
    @property
    def zoom_x(self) -> Optional[Definition]:
        """Icon configuration for the zoom_x tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'zoom-x.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._zoom_x
    @zoom_x.setter
    @class_sensitive(Definition)
    def zoom_x(self, value):
        self._zoom_x = value
    @property
    def zoom_xy(self) -> Optional[Definition]:
        """Icon configuration for the zoom XY tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'zoom-xy.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._zoom_xy
    @zoom_xy.setter
    @class_sensitive(Definition)
    def zoom_xy(self, value):
        self._zoom_xy = value
    @property
    def zoom_y(self) -> Optional[Definition]:
        """Icon configuration for the zoom y tool. If :obj:`None <python:None>`,
        defaults to: ``{ symbol: 'zoom-y.svg' }``.
        :rtype: :class:`Definition` or :obj:`None <python:None>`
        """
        return self._zoom_y
    @zoom_y.setter
    @class_sensitive(Definition)
    def zoom_y(self, value):
        self._zoom_y = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'items': as_dict.get('items', None),
            'zoom_x': as_dict.get('zoomX', None),
            'zoom_xy': as_dict.get('zoomXY', None),
            'zoom_y': as_dict.get('zoomY', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'items': self.items,
            'zoomX': self.zoom_x,
            'zoomXY': self.zoom_xy,
            'zoomY': self.zoom_y,
        }
        return untrimmed