//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Bajun.Network.NET.RestClient.Mockup.Generated.Clients
{
   using System;
   using System.Threading.Tasks;
   using System.Net.Http;
   using Ajuna.NetApi.Model.Types.Base;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto;
   using Ajuna.NetApi.Model.Types.Primitive;
   using Bajun.Network.NET.NetApiExt.Generated.Model.bajun_runtime;
   using Bajun.Network.NET.RestClient.Mockup.Generated.Interfaces;
   
   public sealed class SessionControllerMockupClient : MockupBaseClient, ISessionControllerMockupClient
   {
      private HttpClient _httpClient;
      public SessionControllerMockupClient(HttpClient httpClient)
      {
         _httpClient = httpClient;
      }
      public async Task<bool> SetValidators(BaseVec<AccountId32> value)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/Validators", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.ValidatorsParams());
      }
      public async Task<bool> SetCurrentIndex(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/CurrentIndex", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.CurrentIndexParams());
      }
      public async Task<bool> SetQueuedChanged(Bool value)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/QueuedChanged", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.QueuedChangedParams());
      }
      public async Task<bool> SetQueuedKeys(BaseVec<BaseTuple<AccountId32, SessionKeys>> value)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/QueuedKeys", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.QueuedKeysParams());
      }
      public async Task<bool> SetDisabledValidators(BaseVec<U32> value)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/DisabledValidators", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.DisabledValidatorsParams());
      }
      public async Task<bool> SetNextKeys(SessionKeys value, AccountId32 key)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/NextKeys", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.NextKeysParams(key));
      }
      public async Task<bool> SetKeyOwner(AccountId32 value, BaseTuple<KeyTypeId, BaseVec<U8>> key)
      {
         return await SendMockupRequestAsync(_httpClient, "Session/KeyOwner", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.SessionStorage.KeyOwnerParams(key));
      }
   }
}
