/*
 * Copyright Amazon.com, Inc. or its affiliates. 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.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file 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.
 */
/*
 * Do not modify this file. This file is generated from the fsx-2018-03-01.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.FSx.Model
{
    /// 
    /// Container for the parameters to the DescribeFileSystems operation.
    /// Returns the description of specific Amazon FSx file systems, if a FileSystemIds
    /// value is provided for that file system. Otherwise, it returns descriptions of all
    /// file systems owned by your Amazon Web Services account in the Amazon Web Services
    /// Region of the endpoint that you're calling.
    /// 
    ///  
    /// 
    /// When retrieving all file system descriptions, you can optionally specify the MaxResults
    /// parameter to limit the number of descriptions in a response. If more file system descriptions
    /// remain, Amazon FSx returns a NextToken value in the response. In this
    /// case, send a later request with the NextToken request parameter set to
    /// the value of NextToken from the last response.
    /// 
    ///  
    /// 
    /// This operation is used in an iterative process to retrieve a list of your file system
    /// descriptions. DescribeFileSystems is called first without a NextTokenvalue.
    /// Then the operation continues to be called with the NextToken parameter
    /// set to the value of the last NextToken value until a response has no
    /// NextToken.
    /// 
    ///  
    /// 
    /// When using this operation, keep the following in mind:
    /// 
    ///   -  
    /// 
    /// The implementation might return fewer than MaxResultsfile system descriptions
    /// while still including aNextTokenvalue.
    /// 
    ///
-  
    /// 
    /// The order of file systems returned in the response of one DescribeFileSystems/// call and the order of file systems returned across the responses of a multicall iteration
    /// is unspecified.
    /// 
    ///
/// 
    public partial class DescribeFileSystemsRequest : AmazonFSxRequest
    {
        private List _fileSystemIds = new List();
        private int? _maxResults;
        private string _nextToken;
        /// 
        /// Gets and sets the property FileSystemIds. 
        /// 
        /// IDs of the file systems whose descriptions you want to retrieve (String).
        /// 
        /// 
        [AWSProperty(Max=50)]
        public List FileSystemIds
        {
            get { return this._fileSystemIds; }
            set { this._fileSystemIds = value; }
        }
        // Check to see if FileSystemIds property is set
        internal bool IsSetFileSystemIds()
        {
            return this._fileSystemIds != null && this._fileSystemIds.Count > 0; 
        }
        /// 
        /// Gets and sets the property MaxResults. 
        /// 
        /// Maximum number of file systems to return in the response (integer). This parameter
        /// value must be greater than 0. The number of items that Amazon FSx returns is the minimum
        /// of theMaxResults parameter specified in the request and the service's
        /// internal maximum number of items per page.
        /// 
        /// 
        [AWSProperty(Min=1, Max=2147483647)]
        public int MaxResults
        {
            get { return this._maxResults.GetValueOrDefault(); }
            set { this._maxResults = value; }
        }
        // Check to see if MaxResults property is set
        internal bool IsSetMaxResults()
        {
            return this._maxResults.HasValue; 
        }
        /// 
        /// Gets and sets the property NextToken. 
        /// 
        /// Opaque pagination token returned from a previous DescribeFileSystems
        /// operation (String). If a token present, the operation continues the list from where
        /// the returning call left off.
        /// 
        /// 
        [AWSProperty(Min=1, Max=255)]
        public string NextToken
        {
            get { return this._nextToken; }
            set { this._nextToken = value; }
        }
        // Check to see if NextToken property is set
        internal bool IsSetNextToken()
        {
            return this._nextToken != null;
        }
    }
}