/*
 * 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 kendra-2019-02-03.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.Kendra.Model
{
    /// 
    /// Configuration of attachment settings for the Confluence data source. Attachment settings
    /// are optional, if you don't specify settings attachments, Amazon Kendra won't index
    /// them.
    /// 
    public partial class ConfluenceAttachmentConfiguration
    {
        private List _attachmentFieldMappings = new List();
        private bool? _crawlAttachments;
        /// 
        /// Gets and sets the property AttachmentFieldMappings. 
        /// 
        /// Maps attributes or field names of Confluence attachments to Amazon Kendra index field
        /// names. To create custom fields, use the UpdateIndex API before you map
        /// to Confluence fields. For more information, see Mapping
        /// data source fields. The Confluence data source field names must exist in your
        /// Confluence custom metadata.
        /// 
        ///  
        /// 
        /// If you specify the AttachentFieldMappings parameter, you must specify
        /// at least one field mapping.
        /// 
        /// 
        [AWSProperty(Min=1, Max=11)]
        public List AttachmentFieldMappings
        {
            get { return this._attachmentFieldMappings; }
            set { this._attachmentFieldMappings = value; }
        }
        // Check to see if AttachmentFieldMappings property is set
        internal bool IsSetAttachmentFieldMappings()
        {
            return this._attachmentFieldMappings != null && this._attachmentFieldMappings.Count > 0; 
        }
        /// 
        /// Gets and sets the property CrawlAttachments. 
        /// 
        ///  TRUE to index attachments of pages and blogs in Confluence.
        /// 
        /// 
        public bool CrawlAttachments
        {
            get { return this._crawlAttachments.GetValueOrDefault(); }
            set { this._crawlAttachments = value; }
        }
        // Check to see if CrawlAttachments property is set
        internal bool IsSetCrawlAttachments()
        {
            return this._crawlAttachments.HasValue; 
        }
    }
}