/*
 * 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 wisdom-2020-10-19.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.ConnectWisdomService.Model
{
    /// 
    /// Summary information about the content.
    /// 
    public partial class ContentSummary
    {
        private string _contentArn;
        private string _contentId;
        private string _contentType;
        private string _knowledgeBaseArn;
        private string _knowledgeBaseId;
        private Dictionary _metadata = new Dictionary();
        private string _name;
        private string _revisionId;
        private ContentStatus _status;
        private Dictionary _tags = new Dictionary();
        private string _title;
        /// 
        /// Gets and sets the property ContentArn. 
        /// 
        /// The Amazon Resource Name (ARN) of the content.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string ContentArn
        {
            get { return this._contentArn; }
            set { this._contentArn = value; }
        }
        // Check to see if ContentArn property is set
        internal bool IsSetContentArn()
        {
            return this._contentArn != null;
        }
        /// 
        /// Gets and sets the property ContentId. 
        /// 
        /// The identifier of the content.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string ContentId
        {
            get { return this._contentId; }
            set { this._contentId = value; }
        }
        // Check to see if ContentId property is set
        internal bool IsSetContentId()
        {
            return this._contentId != null;
        }
        /// 
        /// Gets and sets the property ContentType. 
        /// 
        /// The media type of the content.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string ContentType
        {
            get { return this._contentType; }
            set { this._contentType = value; }
        }
        // Check to see if ContentType property is set
        internal bool IsSetContentType()
        {
            return this._contentType != null;
        }
        /// 
        /// Gets and sets the property KnowledgeBaseArn. 
        /// 
        /// The Amazon Resource Name (ARN) of the knowledge base.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string KnowledgeBaseArn
        {
            get { return this._knowledgeBaseArn; }
            set { this._knowledgeBaseArn = value; }
        }
        // Check to see if KnowledgeBaseArn property is set
        internal bool IsSetKnowledgeBaseArn()
        {
            return this._knowledgeBaseArn != null;
        }
        /// 
        /// Gets and sets the property KnowledgeBaseId. 
        /// 
        /// The identifier of the knowledge base.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string KnowledgeBaseId
        {
            get { return this._knowledgeBaseId; }
            set { this._knowledgeBaseId = value; }
        }
        // Check to see if KnowledgeBaseId property is set
        internal bool IsSetKnowledgeBaseId()
        {
            return this._knowledgeBaseId != null;
        }
        /// 
        /// Gets and sets the property Metadata. 
        /// 
        /// A key/value map to store attributes without affecting tagging or recommendations.
        /// For example, when synchronizing data between an external system and Wisdom, you can
        /// store an external version identifier as metadata to utilize for determining drift.
        /// 
        /// 
        [AWSProperty(Required=true, Min=0, Max=10)]
        public Dictionary Metadata
        {
            get { return this._metadata; }
            set { this._metadata = value; }
        }
        // Check to see if Metadata property is set
        internal bool IsSetMetadata()
        {
            return this._metadata != null && this._metadata.Count > 0; 
        }
        /// 
        /// Gets and sets the property Name. 
        /// 
        /// The name of the content.
        /// 
        /// 
        [AWSProperty(Required=true, Min=1, Max=255)]
        public string Name
        {
            get { return this._name; }
            set { this._name = value; }
        }
        // Check to see if Name property is set
        internal bool IsSetName()
        {
            return this._name != null;
        }
        /// 
        /// Gets and sets the property RevisionId. 
        /// 
        /// The identifier of the revision of the content.
        /// 
        /// 
        [AWSProperty(Required=true, Min=1, Max=4096)]
        public string RevisionId
        {
            get { return this._revisionId; }
            set { this._revisionId = value; }
        }
        // Check to see if RevisionId property is set
        internal bool IsSetRevisionId()
        {
            return this._revisionId != null;
        }
        /// 
        /// Gets and sets the property Status. 
        /// 
        /// The status of the content.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public ContentStatus Status
        {
            get { return this._status; }
            set { this._status = value; }
        }
        // Check to see if Status property is set
        internal bool IsSetStatus()
        {
            return this._status != null;
        }
        /// 
        /// Gets and sets the property Tags. 
        /// 
        /// The tags used to organize, track, or control access for this resource.
        /// 
        /// 
        public Dictionary Tags
        {
            get { return this._tags; }
            set { this._tags = value; }
        }
        // Check to see if Tags property is set
        internal bool IsSetTags()
        {
            return this._tags != null && this._tags.Count > 0; 
        }
        /// 
        /// Gets and sets the property Title. 
        /// 
        /// The title of the content.
        /// 
        /// 
        [AWSProperty(Required=true, Min=1, Max=255)]
        public string Title
        {
            get { return this._title; }
            set { this._title = value; }
        }
        // Check to see if Title property is set
        internal bool IsSetTitle()
        {
            return this._title != null;
        }
    }
}