diff --git a/lib/ansible/playbook/attribute.py b/lib/ansible/playbook/attribute.py index 3f55936ff69..c015b0d23bc 100644 --- a/lib/ansible/playbook/attribute.py +++ b/lib/ansible/playbook/attribute.py @@ -24,6 +24,34 @@ from copy import deepcopy class Attribute: def __init__(self, isa=None, private=False, default=None, required=False, listof=None, priority=0, class_type=None, always_post_validate=False, inherit=True): + """ + :class:`Attribute` specifies constraints for attributes of objects which + derive from playbook data. The attributes of the object are basically + a schema for the yaml playbook. + + :kwarg isa: The type of the attribute. Allowable values are a string + representation of any yaml basic datatype, python class, or percent. + (Enforced at post-validation time). + :kwarg private: (not used) + :kwarg default: Default value if unspecified in the YAML document. + :kwarg required: Whether or not the YAML document must contain this field. + If the attribute is None when post-validated, an error will be raised. + :kwarg listof: If isa is set to "list", this can optionally be set to + ensure that all elements in the list are of the given type. Valid + values here are the same as those for isa. + :kwarg priority: The order in which the fields should be parsed. Generally + this does not need to be set, it is for rare situations where another + field depends on the fact that another field was parsed first. + :kwarg class_type: If isa is set to “class”, this can be optionally set to + a class (not a string name). The YAML data for this field will be + passed to the __init__ method of that class during post validation and + the field will be an instance of that class. + :kwarg always_post_validate: Controls whether a field should be post + validated or not (default: True). + :kwarg inherit: A boolean value, which controls whether the object + containing this field should attempt to inherit the value from its + parent object if the local value is None. + """ self.isa = isa self.private = private