//------------------------------------------------------------------------------
// <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 Ajuna.NetApi.Model.Types.Primitive;
   using Bajun.Network.NET.NetApiExt.Generated.Model.polkadot_primitives.v2;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_trie.storage_proof;
   using Bajun.Network.NET.NetApiExt.Generated.Model.cumulus_pallet_parachain_system.relay_state_snapshot;
   using Bajun.Network.NET.NetApiExt.Generated.Model.cumulus_primitives_parachain_inherent;
   using Bajun.Network.NET.NetApiExt.Generated.Types.Base;
   using Bajun.Network.NET.NetApiExt.Generated.Model.polkadot_core_primitives;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_weights.weight_v2;
   using Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types;
   using Bajun.Network.NET.RestClient.Mockup.Generated.Interfaces;
   
   public sealed class ParachainSystemControllerMockupClient : MockupBaseClient, IParachainSystemControllerMockupClient
   {
      private HttpClient _httpClient;
      public ParachainSystemControllerMockupClient(HttpClient httpClient)
      {
         _httpClient = httpClient;
      }
      public async Task<bool> SetPendingValidationCode(BaseVec<U8> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/PendingValidationCode", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.PendingValidationCodeParams());
      }
      public async Task<bool> SetNewValidationCode(BaseVec<U8> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/NewValidationCode", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.NewValidationCodeParams());
      }
      public async Task<bool> SetValidationData(PersistedValidationData value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/ValidationData", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.ValidationDataParams());
      }
      public async Task<bool> SetDidSetValidationCode(Bool value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/DidSetValidationCode", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.DidSetValidationCodeParams());
      }
      public async Task<bool> SetLastRelayChainBlockNumber(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/LastRelayChainBlockNumber", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.LastRelayChainBlockNumberParams());
      }
      public async Task<bool> SetUpgradeRestrictionSignal(BaseOpt<EnumUpgradeRestriction> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/UpgradeRestrictionSignal", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.UpgradeRestrictionSignalParams());
      }
      public async Task<bool> SetRelayStateProof(StorageProof value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/RelayStateProof", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.RelayStateProofParams());
      }
      public async Task<bool> SetRelevantMessagingState(MessagingStateSnapshot value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/RelevantMessagingState", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.RelevantMessagingStateParams());
      }
      public async Task<bool> SetHostConfiguration(AbridgedHostConfiguration value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/HostConfiguration", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.HostConfigurationParams());
      }
      public async Task<bool> SetLastDmqMqcHead(MessageQueueChain value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/LastDmqMqcHead", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.LastDmqMqcHeadParams());
      }
      public async Task<bool> SetLastHrmpMqcHeads(BTreeMapT1 value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/LastHrmpMqcHeads", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.LastHrmpMqcHeadsParams());
      }
      public async Task<bool> SetProcessedDownwardMessages(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/ProcessedDownwardMessages", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.ProcessedDownwardMessagesParams());
      }
      public async Task<bool> SetHrmpWatermark(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/HrmpWatermark", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.HrmpWatermarkParams());
      }
      public async Task<bool> SetHrmpOutboundMessages(BaseVec<OutboundHrmpMessage> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/HrmpOutboundMessages", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.HrmpOutboundMessagesParams());
      }
      public async Task<bool> SetUpwardMessages(BaseVec<BaseVec<U8>> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/UpwardMessages", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.UpwardMessagesParams());
      }
      public async Task<bool> SetPendingUpwardMessages(BaseVec<BaseVec<U8>> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/PendingUpwardMessages", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.PendingUpwardMessagesParams());
      }
      public async Task<bool> SetAnnouncedHrmpMessagesPerCandidate(U32 value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/AnnouncedHrmpMessagesPerCandidate", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.AnnouncedHrmpMessagesPerCandidateParams());
      }
      public async Task<bool> SetReservedXcmpWeightOverride(Weight value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/ReservedXcmpWeightOverride", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.ReservedXcmpWeightOverrideParams());
      }
      public async Task<bool> SetReservedDmpWeightOverride(Weight value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/ReservedDmpWeightOverride", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.ReservedDmpWeightOverrideParams());
      }
      public async Task<bool> SetAuthorizedUpgrade(H256 value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/AuthorizedUpgrade", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.AuthorizedUpgradeParams());
      }
      public async Task<bool> SetCustomValidationHeadData(BaseVec<U8> value)
      {
         return await SendMockupRequestAsync(_httpClient, "ParachainSystem/CustomValidationHeadData", value.Encode(), Bajun.Network.NET.NetApiExt.Generated.Storage.ParachainSystemStorage.CustomValidationHeadDataParams());
      }
   }
}
