using System.Threading.Tasks;
using AnyOfTypes;
using RestEase;
using WireMock.Org.Abstractions;
namespace WireMock.Org.RestClient;
///
/// Summary: WireMockOrg
///
/// Title : WireMock
/// Version: 2.3x
///
public interface IWireMockOrgApi
{
///
/// Get all stub mappings
///
/// GetAdminMappings (/__admin/mappings)
///
/// The maximum number of results to return
/// The start index of the results to return
[Get("/__admin/mappings")]
Task GetAdminMappingsAsync([Query] int? limit, [Query] int? offset);
///
/// Create a new stub mapping
///
/// PostAdminMappings (/__admin/mappings)
///
[Post("/__admin/mappings")]
[Header("Content-Type", "application/json")]
Task PostAdminMappingsAsync();
///
/// Delete all stub mappings
///
/// DeleteAdminMappings (/__admin/mappings)
///
[Delete("/__admin/mappings")]
Task DeleteAdminMappingsAsync();
///
/// Reset stub mappings
///
/// PostAdminMappingsReset (/__admin/mappings/reset)
///
[Post("/__admin/mappings/reset")]
Task PostAdminMappingsResetAsync();
///
/// Persist stub mappings
///
/// PostAdminMappingsSave (/__admin/mappings/save)
///
[Post("/__admin/mappings/save")]
Task PostAdminMappingsSaveAsync();
///
/// Get stub mapping by ID
///
/// GetAdminMappingsByStubMappingId (/__admin/mappings/{stubMappingId})
///
/// The UUID of stub mapping
[Get("/__admin/mappings/{stubMappingId}")]
Task>> GetAdminMappingsByStubMappingIdAsync([Path] string stubMappingId);
///
/// Update a stub mapping
///
/// PutAdminMappingsByStubMappingId (/__admin/mappings/{stubMappingId})
///
/// The UUID of stub mapping
[Put("/__admin/mappings/{stubMappingId}")]
[Header("Content-Type", "application/json")]
Task>> PutAdminMappingsByStubMappingIdAsync([Path] string stubMappingId);
///
/// Delete a stub mapping
///
/// DeleteAdminMappingsByStubMappingId (/__admin/mappings/{stubMappingId})
///
/// The UUID of stub mapping
[Delete("/__admin/mappings/{stubMappingId}")]
Task DeleteAdminMappingsByStubMappingIdAsync([Path] string stubMappingId);
///
/// Find stubs by matching on their metadata
///
/// PostAdminMappingsFindByMetadata (/__admin/mappings/find-by-metadata)
///
[Post("/__admin/mappings/find-by-metadata")]
[Header("Content-Type", "application/json")]
Task PostAdminMappingsFindByMetadataAsync();
///
/// Delete stub mappings matching metadata
///
/// PostAdminMappingsRemoveByMetadata (/__admin/mappings/remove-by-metadata)
///
[Post("/__admin/mappings/remove-by-metadata")]
[Header("Content-Type", "application/json")]
Task PostAdminMappingsRemoveByMetadataAsync();
///
/// Get all requests in journal
///
/// GetAdminRequests (/__admin/requests)
///
/// The maximum number of results to return
/// Only return logged requests after this date
[Get("/__admin/requests")]
Task GetAdminRequestsAsync([Query] string limit, [Query] string since);
///
/// Delete all requests in journal
///
/// DeleteAdminRequests (/__admin/requests)
///
[Delete("/__admin/requests")]
Task DeleteAdminRequestsAsync();
///
/// Get request by ID
///
/// GetAdminRequestsByRequestId (/__admin/requests/{requestId})
///
/// The UUID of the logged request
[Get("/__admin/requests/{requestId}")]
Task GetAdminRequestsByRequestIdAsync([Path] string requestId);
///
/// Delete request by ID
///
/// DeleteAdminRequestsByRequestId (/__admin/requests/{requestId})
///
/// The UUID of the logged request
[Delete("/__admin/requests/{requestId}")]
Task DeleteAdminRequestsByRequestIdAsync([Path] string requestId);
///
/// Empty the request journal
///
/// PostAdminRequestsReset (/__admin/requests/reset)
///
[Post("/__admin/requests/reset")]
Task PostAdminRequestsResetAsync();
///
/// Count requests by criteria
///
/// PostAdminRequestsCount (/__admin/requests/count)
///
[Post("/__admin/requests/count")]
[Header("Content-Type", "application/json")]
Task PostAdminRequestsCountAsync();
///
/// Remove requests by criteria
///
/// PostAdminRequestsRemove (/__admin/requests/remove)
///
[Post("/__admin/requests/remove")]
[Header("Content-Type", "application/json")]
Task PostAdminRequestsRemoveAsync();
///
/// Delete requests mappings matching metadata
///
/// PostAdminRequestsRemoveByMetadata (/__admin/requests/remove-by-metadata)
///
[Post("/__admin/requests/remove-by-metadata")]
[Header("Content-Type", "application/json")]
Task PostAdminRequestsRemoveByMetadataAsync();
///
/// Find requests by criteria
///
/// PostAdminRequestsFind (/__admin/requests/find)
///
[Post("/__admin/requests/find")]
[Header("Content-Type", "application/json")]
Task PostAdminRequestsFindAsync();
///
/// Find unmatched requests
///
/// GetAdminRequestsUnmatched (/__admin/requests/unmatched)
///
[Get("/__admin/requests/unmatched")]
Task GetAdminRequestsUnmatchedAsync();
///
/// Retrieve near-misses for all unmatched requests
///
/// GetAdminRequestsUnmatchedNearMisses (/__admin/requests/unmatched/near-misses)
///
[Get("/__admin/requests/unmatched/near-misses")]
Task GetAdminRequestsUnmatchedNearMissesAsync();
///
/// Find near misses matching specific request
///
/// PostAdminNearMissesRequest (/__admin/near-misses/request)
///
[Post("/__admin/near-misses/request")]
[Header("Content-Type", "application/json")]
Task PostAdminNearMissesRequestAsync();
///
/// Find near misses matching request pattern
///
/// PostAdminNearMissesRequestPattern (/__admin/near-misses/request-pattern)
///
[Post("/__admin/near-misses/request-pattern")]
[Header("Content-Type", "application/json")]
Task PostAdminNearMissesRequestPatternAsync();
///
/// Start recording
///
/// PostAdminRecordingsStart (/__admin/recordings/start)
///
[Post("/__admin/recordings/start")]
[Header("Content-Type", "application/json")]
Task PostAdminRecordingsStartAsync();
///
/// Stop recording
///
/// PostAdminRecordingsStop (/__admin/recordings/stop)
///
[Post("/__admin/recordings/stop")]
Task PostAdminRecordingsStopAsync();
///
/// Get recording status
///
/// GetAdminRecordingsStatus (/__admin/recordings/status)
///
[Get("/__admin/recordings/status")]
Task GetAdminRecordingsStatusAsync();
///
/// Take a snapshot recording
///
/// PostAdminRecordingsSnapshot (/__admin/recordings/snapshot)
///
[Post("/__admin/recordings/snapshot")]
[Header("Content-Type", "application/json")]
Task PostAdminRecordingsSnapshotAsync();
///
/// Get all scenarios
///
/// GetAdminScenarios (/__admin/scenarios)
///
[Get("/__admin/scenarios")]
Task GetAdminScenariosAsync();
///
/// Reset the state of all scenarios
///
/// PostAdminScenariosReset (/__admin/scenarios/reset)
///
[Post("/__admin/scenarios/reset")]
Task PostAdminScenariosResetAsync();
///
/// Update global settings
///
/// PostAdminSettings (/__admin/settings)
///
[Post("/__admin/settings")]
[Header("Content-Type", "application/json")]
Task PostAdminSettingsAsync();
///
/// Reset mappings and request journal
///
/// PostAdminReset (/__admin/reset)
///
[Post("/__admin/reset")]
Task PostAdminResetAsync();
///
/// Shutdown the WireMock server
///
/// PostAdminShutdown (/__admin/shutdown)
///
[Post("/__admin/shutdown")]
Task PostAdminShutdownAsync();
}