// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Warning: This code was generated by a tool.
// 
// Changes to this file may cause incorrect behavior and will be lost if the
// code is regenerated.

using System;
using System.Linq;

namespace Microsoft.Azure.Management.DataFactories.Models
{
    /// <summary>
    /// Activity windows list filter parameters.
    /// </summary>
    public abstract partial class ActivityWindowsListParameters
    {
        private string _dataFactoryName;
        
        /// <summary>
        /// Required. The data factory name.
        /// </summary>
        public string DataFactoryName
        {
            get { return this._dataFactoryName; }
            set { this._dataFactoryName = value; }
        }
        
        private string _filter;
        
        /// <summary>
        /// Optional. The activity window filter based on Azure Search filter
        /// grammar. For more information see
        /// <cref="https://msdn.microsoft.com/en-us/library/azure/dn798921.aspx"/>.
        /// </summary>
        public string Filter
        {
            get { return this._filter; }
            set { this._filter = value; }
        }
        
        private string _orderBy;
        
        /// <summary>
        /// Optional. Order the response by one of the activity window list
        /// parameters.
        /// </summary>
        public string OrderBy
        {
            get { return this._orderBy; }
            set { this._orderBy = value; }
        }
        
        private string _resourceGroupName;
        
        /// <summary>
        /// Required. The resource group name of the data factory.
        /// </summary>
        public string ResourceGroupName
        {
            get { return this._resourceGroupName; }
            set { this._resourceGroupName = value; }
        }
        
        private System.DateTime? _runEnd;
        
        /// <summary>
        /// Optional. The activity window run end time.
        /// </summary>
        public System.DateTime? RunEnd
        {
            get { return this._runEnd; }
            set { this._runEnd = value; }
        }
        
        private System.DateTime? _runStart;
        
        /// <summary>
        /// Optional. The activity window run start time.
        /// </summary>
        public System.DateTime? RunStart
        {
            get { return this._runStart; }
            set { this._runStart = value; }
        }
        
        private int? _top;
        
        /// <summary>
        /// Optional. The number of activity windows to be listed.
        /// </summary>
        public int? Top
        {
            get { return this._top; }
            set { this._top = value; }
        }
        
        private System.DateTime? _windowEnd;
        
        /// <summary>
        /// Optional. The activity window end time.
        /// </summary>
        public System.DateTime? WindowEnd
        {
            get { return this._windowEnd; }
            set { this._windowEnd = value; }
        }
        
        private System.DateTime? _windowStart;
        
        /// <summary>
        /// Optional. The activity window start time.
        /// </summary>
        public System.DateTime? WindowStart
        {
            get { return this._windowStart; }
            set { this._windowStart = value; }
        }
        
        private string _windowState;
        
        /// <summary>
        /// Optional. The state of the activity window. Must be one of see
        /// <cref="WindowState"/>.
        /// </summary>
        public string WindowState
        {
            get { return this._windowState; }
            set { this._windowState = value; }
        }
        
        private string _windowSubstate;
        
        /// <summary>
        /// Optional. The state of the activity window. Must be one of see
        /// <cref="WindowSubState"/>.
        /// </summary>
        public string WindowSubstate
        {
            get { return this._windowSubstate; }
            set { this._windowSubstate = value; }
        }
        
        /// <summary>
        /// Initializes a new instance of the ActivityWindowsListParameters
        /// class.
        /// </summary>
        public ActivityWindowsListParameters()
        {
        }
        
        /// <summary>
        /// Initializes a new instance of the ActivityWindowsListParameters
        /// class with required arguments.
        /// </summary>
        public ActivityWindowsListParameters(string resourceGroupName, string dataFactoryName)
            : this()
        {
            if (resourceGroupName == null)
            {
                throw new ArgumentNullException("resourceGroupName");
            }
            if (dataFactoryName == null)
            {
                throw new ArgumentNullException("dataFactoryName");
            }
            this.ResourceGroupName = resourceGroupName;
            this.DataFactoryName = dataFactoryName;
        }
    }
}
