/*
 * 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 elasticbeanstalk-2010-12-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.ElasticBeanstalk.Model
{
    /// 
    /// Container for the parameters to the SwapEnvironmentCNAMEs operation.
    /// Swaps the CNAMEs of two environments.
    /// 
    public partial class SwapEnvironmentCNAMEsRequest : AmazonElasticBeanstalkRequest
    {
        private string _destinationEnvironmentId;
        private string _destinationEnvironmentName;
        private string _sourceEnvironmentId;
        private string _sourceEnvironmentName;
        /// 
        /// Gets and sets the property DestinationEnvironmentId. 
        /// 
        /// The ID of the destination environment.
        /// 
        ///  
        /// 
        ///  Condition: You must specify at least the DestinationEnvironmentID or
        /// the DestinationEnvironmentName. You may also specify both. You must specify
        /// the SourceEnvironmentId with the DestinationEnvironmentId.
        /// 
        /// 
        /// 
        public string DestinationEnvironmentId
        {
            get { return this._destinationEnvironmentId; }
            set { this._destinationEnvironmentId = value; }
        }
        // Check to see if DestinationEnvironmentId property is set
        internal bool IsSetDestinationEnvironmentId()
        {
            return this._destinationEnvironmentId != null;
        }
        /// 
        /// Gets and sets the property DestinationEnvironmentName. 
        /// 
        /// The name of the destination environment.
        /// 
        ///  
        /// 
        ///  Condition: You must specify at least the DestinationEnvironmentID or
        /// the DestinationEnvironmentName. You may also specify both. You must specify
        /// the SourceEnvironmentName with the DestinationEnvironmentName.
        /// 
        /// 
        /// 
        [AWSProperty(Min=4, Max=40)]
        public string DestinationEnvironmentName
        {
            get { return this._destinationEnvironmentName; }
            set { this._destinationEnvironmentName = value; }
        }
        // Check to see if DestinationEnvironmentName property is set
        internal bool IsSetDestinationEnvironmentName()
        {
            return this._destinationEnvironmentName != null;
        }
        /// 
        /// Gets and sets the property SourceEnvironmentId. 
        /// 
        /// The ID of the source environment.
        /// 
        ///  
        /// 
        ///  Condition: You must specify at least the SourceEnvironmentID or the
        /// SourceEnvironmentName. You may also specify both. If you specify the
        /// SourceEnvironmentId, you must specify the DestinationEnvironmentId.
        /// 
        /// 
        /// 
        public string SourceEnvironmentId
        {
            get { return this._sourceEnvironmentId; }
            set { this._sourceEnvironmentId = value; }
        }
        // Check to see if SourceEnvironmentId property is set
        internal bool IsSetSourceEnvironmentId()
        {
            return this._sourceEnvironmentId != null;
        }
        /// 
        /// Gets and sets the property SourceEnvironmentName. 
        /// 
        /// The name of the source environment.
        /// 
        ///  
        /// 
        ///  Condition: You must specify at least the SourceEnvironmentID or the
        /// SourceEnvironmentName. You may also specify both. If you specify the
        /// SourceEnvironmentName, you must specify the DestinationEnvironmentName.
        /// 
        /// 
        /// 
        [AWSProperty(Min=4, Max=40)]
        public string SourceEnvironmentName
        {
            get { return this._sourceEnvironmentName; }
            set { this._sourceEnvironmentName = value; }
        }
        // Check to see if SourceEnvironmentName property is set
        internal bool IsSetSourceEnvironmentName()
        {
            return this._sourceEnvironmentName != null;
        }
    }
}