/*
 * 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 globalaccelerator-2018-08-08.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.GlobalAccelerator.Model
{
    /// 
    /// Information about an IP address range that is provisioned for use with your Amazon
    /// Web Services resources through bring your own IP address (BYOIP).
    /// 
    ///  
    /// 
    /// The following describes each BYOIP State that your IP address range can
    /// be in.
    /// 
    ///   -  
    /// 
    ///  PENDING_PROVISIONING — You’ve submitted a request to provision an IP address
    /// range but it is not yet provisioned with Global Accelerator.
    /// 
    ///  
-  
    /// 
    ///  READY — The address range is provisioned with Global Accelerator and can be
    /// advertised.
    /// 
    ///  
-  
    /// 
    ///  PENDING_ADVERTISING — You’ve submitted a request for Global Accelerator to
    /// advertise an address range but it is not yet being advertised.
    /// 
    ///  
-  
    /// 
    ///  ADVERTISING — The address range is being advertised by Global Accelerator.
    /// 
    ///  
-  
    /// 
    ///  PENDING_WITHDRAWING — You’ve submitted a request to withdraw an address range
    /// from being advertised but it is still being advertised by Global Accelerator.
    /// 
    ///  
-  
    /// 
    ///  PENDING_DEPROVISIONING — You’ve submitted a request to deprovision an address
    /// range from Global Accelerator but it is still provisioned.
    /// 
    ///  
-  
    /// 
    ///  DEPROVISIONED — The address range is deprovisioned from Global Accelerator.
    /// 
    ///  
-  
    /// 
    ///  FAILED_PROVISION  — The request to provision the address range from Global
    /// Accelerator was not successful. Please make sure that you provide all of the correct
    /// information, and try again. If the request fails a second time, contact Amazon Web
    /// Services support.
    /// 
    ///  
-  
    /// 
    ///  FAILED_ADVERTISING — The request for Global Accelerator to advertise the address
    /// range was not successful. Please make sure that you provide all of the correct information,
    /// and try again. If the request fails a second time, contact Amazon Web Services support.
    /// 
    ///  
-  
    /// 
    ///  FAILED_WITHDRAW — The request to withdraw the address range from advertising
    /// by Global Accelerator was not successful. Please make sure that you provide all of
    /// the correct information, and try again. If the request fails a second time, contact
    /// Amazon Web Services support.
    /// 
    ///  
-  
    /// 
    ///  FAILED_DEPROVISION  — The request to deprovision the address range from Global
    /// Accelerator was not successful. Please make sure that you provide all of the correct
    /// information, and try again. If the request fails a second time, contact Amazon Web
    /// Services support.
    /// 
    ///  
/// 
    public partial class ByoipCidr
    {
        private string _cidr;
        private List _events = new List();
        private ByoipCidrState _state;
        /// 
        /// Gets and sets the property Cidr. 
        /// 
        /// The address range, in CIDR notation.
        /// 
        /// 
        [AWSProperty(Max=255)]
        public string Cidr
        {
            get { return this._cidr; }
            set { this._cidr = value; }
        }
        // Check to see if Cidr property is set
        internal bool IsSetCidr()
        {
            return this._cidr != null;
        }
        /// 
        /// Gets and sets the property Events. 
        /// 
        /// A history of status changes for an IP address range that you bring to Global Accelerator
        /// through bring your own IP address (BYOIP).
        /// 
        /// 
        public List Events
        {
            get { return this._events; }
            set { this._events = value; }
        }
        // Check to see if Events property is set
        internal bool IsSetEvents()
        {
            return this._events != null && this._events.Count > 0; 
        }
        /// 
        /// Gets and sets the property State. 
        /// 
        /// The state of the address pool.
        /// 
        /// 
        public ByoipCidrState State
        {
            get { return this._state; }
            set { this._state = value; }
        }
        // Check to see if State property is set
        internal bool IsSetState()
        {
            return this._state != null;
        }
    }
}