/// <summary>
        /// Returns true if ChannelDefinitionDTO instances are equal
        /// </summary>
        /// <param name="input">Instance of ChannelDefinitionDTO to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ChannelDefinitionDTO input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     Description == input.Description ||
                     (Description != null &&
                      Description.Equals(input.Description))
                     ) &&
                 (
                     Id == input.Id ||
                     (Id != null &&
                      Id.Equals(input.Id))
                 ) &&
                 (
                     Label == input.Label ||
                     (Label != null &&
                      Label.Equals(input.Label))
                 ) &&
                 (
                     Tags == input.Tags ||
                     Tags != null &&
                     Tags.SequenceEqual(input.Tags)
                 ) &&
                 (
                     Properties == input.Properties ||
                     Properties != null &&
                     Properties.SequenceEqual(input.Properties)
                 ) &&
                 (
                     Category == input.Category ||
                     (Category != null &&
                      Category.Equals(input.Category))
                 ) &&
                 (
                     StateDescription == input.StateDescription ||
                     (StateDescription != null &&
                      StateDescription.Equals(input.StateDescription))
                 ) &&
                 (
                     Advanced == input.Advanced ||
                     (Advanced != null &&
                      Advanced.Equals(input.Advanced))
                 ) &&
                 (
                     TypeUID == input.TypeUID ||
                     (TypeUID != null &&
                      TypeUID.Equals(input.TypeUID))
                 ));
        }
        /// <summary>
        /// Returns true if ChannelTypeDTO instances are equal
        /// </summary>
        /// <param name="input">Instance of ChannelTypeDTO to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ChannelTypeDTO input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     Parameters == input.Parameters ||
                     Parameters != null &&
                     Parameters.SequenceEqual(input.Parameters)
                     ) &&
                 (
                     ParameterGroups == input.ParameterGroups ||
                     ParameterGroups != null &&
                     ParameterGroups.SequenceEqual(input.ParameterGroups)
                 ) &&
                 (
                     Description == input.Description ||
                     (Description != null &&
                      Description.Equals(input.Description))
                 ) &&
                 (
                     Label == input.Label ||
                     (Label != null &&
                      Label.Equals(input.Label))
                 ) &&
                 (
                     Category == input.Category ||
                     (Category != null &&
                      Category.Equals(input.Category))
                 ) &&
                 (
                     ItemType == input.ItemType ||
                     (ItemType != null &&
                      ItemType.Equals(input.ItemType))
                 ) &&
                 (
                     Kind == input.Kind ||
                     (Kind != null &&
                      Kind.Equals(input.Kind))
                 ) &&
                 (
                     StateDescription == input.StateDescription ||
                     (StateDescription != null &&
                      StateDescription.Equals(input.StateDescription))
                 ) &&
                 (
                     Tags == input.Tags ||
                     Tags != null &&
                     Tags.SequenceEqual(input.Tags)
                 ) &&
                 (
                     UID == input.UID ||
                     (UID != null &&
                      UID.Equals(input.UID))
                 ) &&
                 (
                     Advanced == input.Advanced ||
                     (Advanced != null &&
                      Advanced.Equals(input.Advanced))
                 ) &&
                 (
                     CommandDescription == input.CommandDescription ||
                     (CommandDescription != null &&
                      CommandDescription.Equals(input.CommandDescription))
                 ));
        }
        /// <summary>
        /// Returns true if EnrichedItemDTO instances are equal
        /// </summary>
        /// <param name="input">Instance of EnrichedItemDTO to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(EnrichedItemDTO input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     Type == input.Type ||
                     (Type != null &&
                      Type.Equals(input.Type))
                     ) &&
                 (
                     Name == input.Name ||
                     (Name != null &&
                      Name.Equals(input.Name))
                 ) &&
                 (
                     Label == input.Label ||
                     (Label != null &&
                      Label.Equals(input.Label))
                 ) &&
                 (
                     Category == input.Category ||
                     (Category != null &&
                      Category.Equals(input.Category))
                 ) &&
                 (
                     Tags == input.Tags ||
                     Tags != null &&
                     Tags.SequenceEqual(input.Tags)
                 ) &&
                 (
                     GroupNames == input.GroupNames ||
                     GroupNames != null &&
                     GroupNames.SequenceEqual(input.GroupNames)
                 ) &&
                 (
                     Link == input.Link ||
                     (Link != null &&
                      Link.Equals(input.Link))
                 ) &&
                 (
                     State == input.State ||
                     (State != null &&
                      State.Equals(input.State))
                 ) &&
                 (
                     TransformedState == input.TransformedState ||
                     (TransformedState != null &&
                      TransformedState.Equals(input.TransformedState))
                 ) &&
                 (
                     StateDescription == input.StateDescription ||
                     (StateDescription != null &&
                      StateDescription.Equals(input.StateDescription))
                 ) &&
                 (
                     CommandDescription == input.CommandDescription ||
                     (CommandDescription != null &&
                      CommandDescription.Equals(input.CommandDescription))
                 ) &&
                 (
                     Metadata == input.Metadata ||
                     Metadata != null &&
                     Metadata.SequenceEqual(input.Metadata)
                 ) &&
                 (
                     Editable == input.Editable ||
                     (Editable != null &&
                      Editable.Equals(input.Editable))
                 ));
        }