/*
 * 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 pricing-2017-10-15.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.Pricing.Model
{
    /// 
    ///  This feature is in preview release and is subject to change. Your use of Amazon
    /// Web Services Price List API is subject to the Beta Service Participation terms of
    /// the Amazon Web Services Service Terms
    /// (Section 1.10).  
    /// 
    ///  
    /// 
    /// This is the type of price list references that match your request. 
    /// 
    /// 
    public partial class PriceList
    {
        private string _currencyCode;
        private List _fileFormats = new List();
        private string _priceListArn;
        private string _regionCode;
        /// 
        /// Gets and sets the property CurrencyCode. 
        /// 
        /// The three alphabetical character ISO-4217 currency code the Price List files are denominated
        /// in. 
        /// 
        /// 
        public string CurrencyCode
        {
            get { return this._currencyCode; }
            set { this._currencyCode = value; }
        }
        // Check to see if CurrencyCode property is set
        internal bool IsSetCurrencyCode()
        {
            return this._currencyCode != null;
        }
        /// 
        /// Gets and sets the property FileFormats. 
        /// 
        /// The format you want to retrieve your Price List files. The FileFormat
        /// can be obtained from the 
        /// ListPriceList  response. 
        /// 
        /// 
        public List FileFormats
        {
            get { return this._fileFormats; }
            set { this._fileFormats = value; }
        }
        // Check to see if FileFormats property is set
        internal bool IsSetFileFormats()
        {
            return this._fileFormats != null && this._fileFormats.Count > 0; 
        }
        /// 
        /// Gets and sets the property PriceListArn. 
        /// 
        /// The unique identifier that maps to where your Price List files are located. PriceListArn
        /// can be obtained from the 
        /// ListPriceList  response. 
        /// 
        /// 
        [AWSProperty(Min=18, Max=2048)]
        public string PriceListArn
        {
            get { return this._priceListArn; }
            set { this._priceListArn = value; }
        }
        // Check to see if PriceListArn property is set
        internal bool IsSetPriceListArn()
        {
            return this._priceListArn != null;
        }
        /// 
        /// Gets and sets the property RegionCode. 
        /// 
        /// This is used to filter the Price List by Amazon Web Services Region. For example,
        /// to get the price list only for the US East (N. Virginia) Region, use
        /// us-east-1. If nothing is specified, you retrieve price lists for all
        /// applicable Regions. The available RegionCode list can be retrieved from
        /// 
        /// GetAttributeValues  API. 
        /// 
        /// 
        [AWSProperty(Min=1, Max=255)]
        public string RegionCode
        {
            get { return this._regionCode; }
            set { this._regionCode = value; }
        }
        // Check to see if RegionCode property is set
        internal bool IsSetRegionCode()
        {
            return this._regionCode != null;
        }
    }
}