﻿#region Header: Copyright © 2014, N3XeS, Inc.

// ========================================================================
// <copyright file="IStretchrResponse.cs" company="N3XeS, Inc.">
//	Copyright © 2014, N3XeS, Inc.
//	All rights reserved.
//
//	This program is free software: you can redistribute it and/or modify
//	it under the terms of the GNU General Public License as published by
//	the Free Software Foundation, either version 3 of the License, or
//	(at your option) any later version.  
//
//	This program is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	GNU General Public License for more details.  
//
//	You should have received a copy of the GNU General Public License
//	along with this program.  If not, see http://www.gnu.org/licenses/.
//
// </copyright>
////=======================================================================

#endregion

namespace Stretchr.CSharp.Sdk.Entities.Interfaces
{
	#region Directives

	using System;

	using JetBrains.Annotations;

	using Newtonsoft.Json;

	#endregion

	/// <summary>
	///		Represents an implementation that is used to describe a response to a <see cref="T:Stretchr.CSharp.Sdk.Entities.Interfaces.IStretchrRequest"/>.
	/// </summary>
	/// <author>
	///  <AuthorName>John Caruthers, Jr.</AuthorName>
	///  <CreationDate>Tuesday, May 20, 2014  (05/20/2014)</CreationDate>
	///  <CreationTime>04:29:48 PM</CreationTime>
	/// </author>
	/// <history>
	///  <Modification>
	///   <ModifierName></ModifierName>
	///   <ModificationDate></ModificationDate>
	///   <ModificationTime></ModificationTime>
	///   <ModificationDescription></ModificationDescription>
	///  </Modification>
	/// </history>
	public interface IStretchrResponse
	{
		#region Events

		#endregion

		#region Properties/Accessors/Mutators

		/// <summary>
		///		Gets or sets the result that was returned in the response.
		/// </summary>
		/// <returns>
		///		The result that was returned in the response.
		/// </returns>
		[CanBeNull, JsonIgnore]
		String Result { get; set; }

		/// <summary>
		///		Gets the errors that were returned in the response.
		/// </summary>
		/// <returns>
		///		The errors that were returned in the response.
		/// </returns>
		[CanBeNull, JsonProperty("~errors")]
		String[] Errors { get; }

		/// <summary>
		///		Gets the HTTP Status Code of the response.
		/// </summary>
		/// <returns>
		///		The HTTP Status Code of the response.
		/// </returns>
		[JsonProperty("~status"), NotNull]
		String HttpStatusCode { get; }

		#endregion

		#region Indexers

		#endregion

		#region Event Handlers

		#endregion

		#region Methods/Functions

		#endregion
	}
}
