/// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="Microsoft.Rest.ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (AdditionalItems != null)
     {
         AdditionalItems.Validate();
     }
     if (AdditionalProperties != null)
     {
         AdditionalProperties.Validate();
     }
     if (AllOf != null)
     {
         foreach (var element in AllOf)
         {
             if (element != null)
             {
                 element.Validate();
             }
         }
     }
     if (AnyOf != null)
     {
         foreach (var element1 in AnyOf)
         {
             if (element1 != null)
             {
                 element1.Validate();
             }
         }
     }
     if (DefaultProperty != null)
     {
         DefaultProperty.Validate();
     }
     if (Definitions != null)
     {
         foreach (var valueElement in Definitions.Values)
         {
             if (valueElement != null)
             {
                 valueElement.Validate();
             }
         }
     }
     if (Dependencies != null)
     {
         foreach (var valueElement1 in Dependencies.Values)
         {
             if (valueElement1 != null)
             {
                 valueElement1.Validate();
             }
         }
     }
     if (EnumProperty != null)
     {
         foreach (var element2 in EnumProperty)
         {
             if (element2 != null)
             {
                 element2.Validate();
             }
         }
     }
     if (Example != null)
     {
         Example.Validate();
     }
     if (Items != null)
     {
         Items.Validate();
     }
     if (Not != null)
     {
         Not.Validate();
     }
     if (OneOf != null)
     {
         foreach (var element3 in OneOf)
         {
             if (element3 != null)
             {
                 element3.Validate();
             }
         }
     }
     if (PatternProperties != null)
     {
         foreach (var valueElement2 in PatternProperties.Values)
         {
             if (valueElement2 != null)
             {
                 valueElement2.Validate();
             }
         }
     }
     if (Properties != null)
     {
         foreach (var valueElement3 in Properties.Values)
         {
             if (valueElement3 != null)
             {
                 valueElement3.Validate();
             }
         }
     }
 }