user: Explain ShaderNodeTexSky(ShaderNode) in complete detail according to the official Blender documentation.

assistant: # ShaderNodeTexSky(ShaderNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`ShaderNode`](bpy.types.ShaderNode.html#bpy.types.ShaderNode "bpy.types.ShaderNode")

*class* bpy.types.ShaderNodeTexSky(*ShaderNode*)
:   Generate a procedural sky texture

    aerosol_density
    :   Density of dust, pollution and water droplets.
        0 means no aerosols, 1 means urban city aerosols

        Type:
        :   float in [0, 1000], default 1.0

    air_density
    :   Density of air molecules.
        0 means no air, 1 means urban city air

        Type:
        :   float in [0, 1000], default 1.0

    altitude
    :   Height from sea level

        Type:
        :   float in [0, 100000], default 100.0

    color_mapping
    :   Color mapping settings

        Type:
        :   [`ColorMapping`](bpy.types.ColorMapping.html#bpy.types.ColorMapping "bpy.types.ColorMapping"), (readonly, never None)

    ground_albedo
    :   Ground color that is subtly reflected in the sky

        Type:
        :   float in [0, 1], default 0.0

    ozone_density
    :   Density of ozone layer.
        0 means no ozone, 1 means urban city ozone

        Type:
        :   float in [0, 1000], default 1.0

    sky_type
    :   Which sky model should be used

        - `SINGLE_SCATTERING`
          Single Scattering – Single scattering sky model.
        - `MULTIPLE_SCATTERING`
          Multiple Scattering – Multiple scattering sky model (more accurate).
        - `PREETHAM`
          Preetham – Preetham 1999 (Legacy).
        - `HOSEK_WILKIE`
          Hosek / Wilkie – Hosek / Wilkie 2012 (Legacy).

        Type:
        :   enum in [`'SINGLE_SCATTERING'`, `'MULTIPLE_SCATTERING'`, `'PREETHAM'`, `'HOSEK_WILKIE'`], default `'PREETHAM'`

    sun_direction
    :   Direction from where the sun is shining

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 1.0)

    sun_disc
    :   Include the sun itself in the output

        Type:
        :   boolean, default True

    sun_elevation
    :   Sun angle from horizon

        Type:
        :   float in [-inf, inf], default 0.261799

    sun_intensity
    :   Strength of Sun

        Type:
        :   float in [0, 1000], default 1.0

    sun_rotation
    :   Rotation of sun around zenith

        Type:
        :   float in [-inf, inf], default 0.0

    sun_size
    :   Size of sun disc

        Type:
        :   float in [0, 1.5708], default 0.00951204

    texture_mapping
    :   Texture coordinate mapping settings

        Type:
        :   [`TexMapping`](bpy.types.TexMapping.html#bpy.types.TexMapping "bpy.types.TexMapping"), (readonly, never None)

    turbidity
    :   Atmospheric turbidity

        Type:
        :   float in [1, 10], default 0.0

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type