@using System @using System.Linq @using AutoRest.Core.Utilities @using AutoRest.CSharp.Model @inherits AutoRest.Core.Template @Header("// ") @EmptyLine namespace @Settings.Namespace { @foreach (var usingString in Model.Usings) { @:using @usingString; } @EmptyLine /// @WrapComment("/// ", Model.Documentation.EscapeXmlComment()) /// public partial interface I@(Model.Name) : System.IDisposable { /// /// The base URI of the service. /// @if (!Model.IsCustomBaseUri) { @:System.Uri BaseUri { get; set; } } @EmptyLine /// /// Gets or sets json serialization settings. /// Newtonsoft.Json.JsonSerializerSettings SerializationSettings { get; } @EmptyLine /// /// Gets or sets json deserialization settings. /// Newtonsoft.Json.JsonSerializerSettings DeserializationSettings { get; } @EmptyLine @foreach (var property in Model.Properties) { @:/// @:@WrapComment("/// ", property.Documentation.EscapeXmlComment()) @:/// @:@property.ModelTypeName @property.Name { get;@(property.IsReadOnly || property.IsConstant ? "" : " set;") } @EmptyLine } @EmptyLine @foreach(var operation in Model.AllOperations) { @:/// @:/// Gets the I@(operation.TypeName). @:/// @:I@(operation.TypeName) @(operation.NameForProperty) { get; } @EmptyLine @: } @foreach(MethodCs method in Model.Methods.Where( each => each.Group.IsNullOrEmpty()) ) { if (method.ExcludeFromInterface) { continue; } if (!String.IsNullOrEmpty(method.Description) || !String.IsNullOrEmpty(method.Summary)) { @:/// @:@WrapComment("/// ", String.IsNullOrEmpty(method.Summary) ? method.Description.EscapeXmlComment() : method.Summary.EscapeXmlComment()) @:/// } if (!String.IsNullOrEmpty(method.Description) && !String.IsNullOrEmpty(method.Summary)) { @:/// @:@WrapComment("/// ", method.Description.EscapeXmlComment()) @:/// } foreach (ParameterCs parameter in method.LocalParameters) { @:/// @:@WrapComment("/// ", parameter.DocumentationString.EscapeXmlComment()) @:/// } @:/// @:/// The headers that will be added to request. @:/// @:/// @:/// The cancellation token. @:/// @:System.Threading.Tasks.Task<@(method.OperationResponseReturnTypeString)> @(method.Name)WithHttpMessagesAsync(@(method.GetAsyncMethodParameterDeclaration(true))); @EmptyLine @: } } }