/*
 * 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 dataexchange-2017-07-25.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.DataExchange.Model
{
    /// 
    /// The response details.
    /// 
    public partial class ImportAssetFromApiGatewayApiResponseDetails
    {
        private string _apiDescription;
        private string _apiId;
        private string _apiKey;
        private string _apiName;
        private string _apiSpecificationMd5Hash;
        private string _apiSpecificationUploadUrl;
        private DateTime? _apiSpecificationUploadUrlExpiresAt;
        private string _dataSetId;
        private ProtocolType _protocolType;
        private string _revisionId;
        private string _stage;
        /// 
        /// Gets and sets the property ApiDescription. 
        /// 
        /// The API description.
        /// 
        /// 
        public string ApiDescription
        {
            get { return this._apiDescription; }
            set { this._apiDescription = value; }
        }
        // Check to see if ApiDescription property is set
        internal bool IsSetApiDescription()
        {
            return this._apiDescription != null;
        }
        /// 
        /// Gets and sets the property ApiId. 
        /// 
        /// The API ID.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string ApiId
        {
            get { return this._apiId; }
            set { this._apiId = value; }
        }
        // Check to see if ApiId property is set
        internal bool IsSetApiId()
        {
            return this._apiId != null;
        }
        /// 
        /// Gets and sets the property ApiKey. 
        /// 
        /// The API key.
        /// 
        /// 
        public string ApiKey
        {
            get { return this._apiKey; }
            set { this._apiKey = value; }
        }
        // Check to see if ApiKey property is set
        internal bool IsSetApiKey()
        {
            return this._apiKey != null;
        }
        /// 
        /// Gets and sets the property ApiName. 
        /// 
        /// The API name.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string ApiName
        {
            get { return this._apiName; }
            set { this._apiName = value; }
        }
        // Check to see if ApiName property is set
        internal bool IsSetApiName()
        {
            return this._apiName != null;
        }
        /// 
        /// Gets and sets the property ApiSpecificationMd5Hash. 
        /// 
        /// The Base64-encoded Md5 hash for the API asset, used to ensure the integrity of the
        /// API at that location.
        /// 
        /// 
        [AWSProperty(Required=true, Min=24, Max=24)]
        public string ApiSpecificationMd5Hash
        {
            get { return this._apiSpecificationMd5Hash; }
            set { this._apiSpecificationMd5Hash = value; }
        }
        // Check to see if ApiSpecificationMd5Hash property is set
        internal bool IsSetApiSpecificationMd5Hash()
        {
            return this._apiSpecificationMd5Hash != null;
        }
        /// 
        /// Gets and sets the property ApiSpecificationUploadUrl. 
        /// 
        /// The upload URL of the API specification.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string ApiSpecificationUploadUrl
        {
            get { return this._apiSpecificationUploadUrl; }
            set { this._apiSpecificationUploadUrl = value; }
        }
        // Check to see if ApiSpecificationUploadUrl property is set
        internal bool IsSetApiSpecificationUploadUrl()
        {
            return this._apiSpecificationUploadUrl != null;
        }
        /// 
        /// Gets and sets the property ApiSpecificationUploadUrlExpiresAt. 
        /// 
        /// The date and time that the upload URL expires, in ISO 8601 format.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public DateTime ApiSpecificationUploadUrlExpiresAt
        {
            get { return this._apiSpecificationUploadUrlExpiresAt.GetValueOrDefault(); }
            set { this._apiSpecificationUploadUrlExpiresAt = value; }
        }
        // Check to see if ApiSpecificationUploadUrlExpiresAt property is set
        internal bool IsSetApiSpecificationUploadUrlExpiresAt()
        {
            return this._apiSpecificationUploadUrlExpiresAt.HasValue; 
        }
        /// 
        /// Gets and sets the property DataSetId. 
        /// 
        /// The data set ID.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string DataSetId
        {
            get { return this._dataSetId; }
            set { this._dataSetId = value; }
        }
        // Check to see if DataSetId property is set
        internal bool IsSetDataSetId()
        {
            return this._dataSetId != null;
        }
        /// 
        /// Gets and sets the property ProtocolType. 
        /// 
        /// The protocol type.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public ProtocolType ProtocolType
        {
            get { return this._protocolType; }
            set { this._protocolType = value; }
        }
        // Check to see if ProtocolType property is set
        internal bool IsSetProtocolType()
        {
            return this._protocolType != null;
        }
        /// 
        /// Gets and sets the property RevisionId. 
        /// 
        /// The revision ID.
        /// 
        /// 
        [AWSProperty(Required=true)]
        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 Stage. 
        /// 
        /// The API stage.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public string Stage
        {
            get { return this._stage; }
            set { this._stage = value; }
        }
        // Check to see if Stage property is set
        internal bool IsSetStage()
        {
            return this._stage != null;
        }
    }
}