//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Security
{
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
///
/// Defines the IWSTrustContract for sending WS-Trust messages to an STS.
///
[ServiceContract]
public interface IWSTrustContract
{
///
/// Method for Cancel binding for WS-Trust
///
/// The Request Message that contains a RST.
/// Response message containing the RSTR.
[OperationContract(Name = "Cancel", Action = "*", ReplyAction = "*")]
Message Cancel(Message message);
///
/// Begin Async Method for Cancel binding for WS-Trust
///
/// The Request Message that contains a RST.
/// An optional asynchronous callback, to be called when the send is complete.
/// A user-provided object that distinguishes this particular asynchronous send request from other requests.
/// An IAsyncResult object that represents the asynchronous send, which could still be pending.
[OperationContract(AsyncPattern = true, Name = "Cancel", Action = "*", ReplyAction = "*")]
IAsyncResult BeginCancel(Message message, AsyncCallback callback, object asyncState);
///
/// End Async Method for Cancel binding for WS-Trust
///
/// A reference to the outstanding asynchronous send request.
/// Response message containing the RSTR.
Message EndCancel(IAsyncResult asyncResult);
///
/// Method for Issue binding for WS-Trust
///
/// The Request Message that contains a RST.
/// Response message containing the RSTR.
[OperationContract(Name = "Issue", Action = "*", ReplyAction = "*")]
Message Issue(Message message);
///
/// Begin Async Method for Issue binding for WS-Trust
///
/// The Request Message that contains a RST.
/// An optional asynchronous callback, to be called when the send is complete.
/// A user-provided object that distinguishes this particular asynchronous send request from other requests.
/// An IAsyncResult object that represents the asynchronous send, which could still be pending.
[OperationContract(AsyncPattern = true, Name = "Issue", Action = "*", ReplyAction = "*")]
IAsyncResult BeginIssue(Message message, AsyncCallback callback, object asyncState);
///
/// End Async Method for Issue binding for WS-Trust
///
/// A reference to the outstanding asynchronous send request.
/// Response message containing the RSTR.
Message EndIssue(IAsyncResult asyncResult);
///
/// Method for Renew binding for WS-Trust
///
/// The Request Message that contains a RST.
/// Response message containing the RSTR.
[OperationContract(Name = "Renew", Action = "*", ReplyAction = "*")]
Message Renew(Message message);
///
/// Begin Async Method for Renew binding for WS-Trust
///
/// The Request Message that contains a RST.
/// An optional asynchronous callback, to be called when the send is complete.
/// A user-provided object that distinguishes this particular asynchronous send request from other requests.
/// An IAsyncResult object that represents the asynchronous send, which could still be pending.
[OperationContract(AsyncPattern = true, Name = "Renew", Action = "*", ReplyAction = "*")]
IAsyncResult BeginRenew(Message message, AsyncCallback callback, object asyncState);
///
/// End Async Method for Renew binding for WS-Trust
///
/// A reference to the outstanding asynchronous send request.
/// Response message containing the RSTR.
Message EndRenew(IAsyncResult asyncResult);
///
/// Method for Validate binding for WS-Trust
///
/// The Request Message that contains a RST.
/// Response message containing the RSTR.
[OperationContract(Name = "Validate", Action = "*", ReplyAction = "*")]
Message Validate(Message message);
///
/// Begin Async Method for Validate binding for WS-Trust
///
/// The Request Message that contains a RST.
/// An optional asynchronous callback, to be called when the send is complete.
/// A user-provided object that distinguishes this particular asynchronous send request from other requests.
/// An IAsyncResult object that represents the asynchronous send, which could still be pending.
[OperationContract(AsyncPattern = true, Name = "Validate", Action = "*", ReplyAction = "*")]
IAsyncResult BeginValidate(Message message, AsyncCallback callback, object asyncState);
///
/// End Async Method for Validate binding for WS-Trust
///
/// A reference to the outstanding asynchronous send request.
/// Response message containing the RSTR.
Message EndValidate(IAsyncResult asyncResult);
}
}