/*
 * 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 secretsmanager-2017-10-17.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.SecretsManager.Model
{
    /// 
    /// Container for the parameters to the ListSecretVersionIds operation.
    /// Lists the versions of a secret. Secrets Manager uses staging labels to indicate the
    /// different versions of a secret. For more information, see 
    /// Secrets Manager concepts: Versions.
    /// 
    ///  
    /// 
    /// To list the secrets in the account, use ListSecrets.
    /// 
    ///  
    /// 
    /// Secrets Manager generates a CloudTrail log entry when you call this action. Do not
    /// include sensitive information in request parameters because it might be logged. For
    /// more information, see Logging
    /// Secrets Manager events with CloudTrail.
    /// 
    ///  
    /// 
    ///  Required permissions:  secretsmanager:ListSecretVersionIds. For
    /// more information, see 
    /// IAM policy actions for Secrets Manager and Authentication
    /// and access control in Secrets Manager. 
    /// 
    /// 
    public partial class ListSecretVersionIdsRequest : AmazonSecretsManagerRequest
    {
        private bool? _includeDeprecated;
        private int? _maxResults;
        private string _nextToken;
        private string _secretId;
        /// 
        /// Gets and sets the property IncludeDeprecated. 
        /// 
        /// Specifies whether to include versions of secrets that don't have any staging labels
        /// attached to them. Versions without staging labels are considered deprecated and are
        /// subject to deletion by Secrets Manager. By default, versions without staging labels
        /// aren't included.
        /// 
        /// 
        public bool IncludeDeprecated
        {
            get { return this._includeDeprecated.GetValueOrDefault(); }
            set { this._includeDeprecated = value; }
        }
        // Check to see if IncludeDeprecated property is set
        internal bool IsSetIncludeDeprecated()
        {
            return this._includeDeprecated.HasValue; 
        }
        /// 
        /// Gets and sets the property MaxResults. 
        /// 
        /// The number of results to include in the response.
        /// 
        ///  
        /// 
        /// If there are more results available, in the response, Secrets Manager includes NextToken.
        /// To get the next results, call ListSecretVersionIds again with the value
        /// from NextToken. 
        /// 
        /// 
        [AWSProperty(Min=1, Max=100)]
        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. 
        /// 
        /// A token that indicates where the output should continue from, if a previous call did
        /// not show all results. To get the next results, call ListSecretVersionIds
        /// again with this value.
        /// 
        /// 
        [AWSProperty(Min=1, Max=4096)]
        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;
        }
        /// 
        /// Gets and sets the property SecretId. 
        /// 
        /// The ARN or name of the secret whose versions you want to list.
        /// 
        ///  
        /// 
        /// For an ARN, we recommend that you specify a complete ARN rather than a partial ARN.
        /// See Finding
        /// a secret from a partial ARN.
        /// 
        /// 
        [AWSProperty(Required=true, Min=1, Max=2048)]
        public string SecretId
        {
            get { return this._secretId; }
            set { this._secretId = value; }
        }
        // Check to see if SecretId property is set
        internal bool IsSetSecretId()
        {
            return this._secretId != null;
        }
    }
}