import _plotly_utils.basevalidators


class SceneValidator(_plotly_utils.basevalidators.CompoundValidator):

    def __init__(self, plotly_name='scene', parent_name='layout', **kwargs):
        super(SceneValidator, self).__init__(
            plotly_name=plotly_name,
            parent_name=parent_name,
            data_class_str=kwargs.pop('data_class_str', 'Scene'),
            data_docs=kwargs.pop(
                'data_docs', """
            annotations
                plotly.graph_objs.layout.scene.Annotation
                instance or dict with compatible properties
            annotationdefaults
                When used in a template (as layout.template.lay
                out.scene.annotationdefaults), sets the default
                property values to use for elements of
                layout.scene.annotations
            aspectmode
                If "cube", this scene's axes are drawn as a
                cube, regardless of the axes' ranges. If
                "data", this scene's axes are drawn in
                proportion with the axes' ranges. If "manual",
                this scene's axes are drawn in proportion with
                the input of "aspectratio" (the default
                behavior if "aspectratio" is provided). If
                "auto", this scene's axes are drawn using the
                results of "data" except when one axis is more
                than four times the size of the two others,
                where in that case the results of "cube" are
                used.
            aspectratio
                Sets this scene's axis aspectratio.
            bgcolor

            camera
                plotly.graph_objs.layout.scene.Camera instance
                or dict with compatible properties
            domain
                plotly.graph_objs.layout.scene.Domain instance
                or dict with compatible properties
            dragmode
                Determines the mode of drag interactions for
                this scene.
            hovermode
                Determines the mode of hover interactions for
                this scene.
            xaxis
                plotly.graph_objs.layout.scene.XAxis instance
                or dict with compatible properties
            yaxis
                plotly.graph_objs.layout.scene.YAxis instance
                or dict with compatible properties
            zaxis
                plotly.graph_objs.layout.scene.ZAxis instance
                or dict with compatible properties
"""
            ),
            **kwargs
        )
