/*
 * Daytona
 * Daytona AI platform API Docs
 *
 * The version of the OpenAPI document: 1.0
 * Contact: support@daytona.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package io.daytona.api.client.api;

import io.daytona.api.client.ApiException;
import io.daytona.api.client.model.AdminCreateRunner;
import io.daytona.api.client.model.AdminGetWebhookStatus200Response;
import java.math.BigDecimal;
import io.daytona.api.client.model.CreateRunnerResponse;
import io.daytona.api.client.model.CreateUser;
import io.daytona.api.client.model.DockerRegistry;
import java.time.OffsetDateTime;
import io.daytona.api.client.model.PaginatedAuditLogs;
import io.daytona.api.client.model.RunnerFull;
import io.daytona.api.client.model.Sandbox;
import io.daytona.api.client.model.SendWebhookDto;
import io.daytona.api.client.model.SetSnapshotGeneralStatusDto;
import io.daytona.api.client.model.SnapshotDto;
import io.daytona.api.client.model.User;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * API tests for AdminApi
 */
@Disabled
public class AdminApiTest {

    private final AdminApi api = new AdminApi();

    /**
     * Check if an image can be cleaned up
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminCanCleanupImageTest() throws ApiException {
        String imageName = null;
        Boolean response = api.adminCanCleanupImage(imageName);
        // TODO: test validations
    }

    /**
     * Create runner
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminCreateRunnerTest() throws ApiException {
        AdminCreateRunner adminCreateRunner = null;
        CreateRunnerResponse response = api.adminCreateRunner(adminCreateRunner);
        // TODO: test validations
    }

    /**
     * Create user
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminCreateUserTest() throws ApiException {
        CreateUser createUser = null;
        api.adminCreateUser(createUser);
        // TODO: test validations
    }

    /**
     * Delete runner
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminDeleteRunnerTest() throws ApiException {
        String id = null;
        api.adminDeleteRunner(id);
        // TODO: test validations
    }

    /**
     * Get all audit logs
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminGetAllAuditLogsTest() throws ApiException {
        BigDecimal page = null;
        BigDecimal limit = null;
        OffsetDateTime from = null;
        OffsetDateTime to = null;
        String nextToken = null;
        PaginatedAuditLogs response = api.adminGetAllAuditLogs(page, limit, from, to, nextToken);
        // TODO: test validations
    }

    /**
     * Get delivery attempts for a webhook message
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminGetMessageAttemptsTest() throws ApiException {
        String organizationId = null;
        String messageId = null;
        List<Object> response = api.adminGetMessageAttempts(organizationId, messageId);
        // TODO: test validations
    }

    /**
     * Get runner by ID
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminGetRunnerByIdTest() throws ApiException {
        String id = null;
        RunnerFull response = api.adminGetRunnerById(id);
        // TODO: test validations
    }

    /**
     * Get user by ID
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminGetUserTest() throws ApiException {
        String id = null;
        User response = api.adminGetUser(id);
        // TODO: test validations
    }

    /**
     * Get webhook service status
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminGetWebhookStatusTest() throws ApiException {
        AdminGetWebhookStatus200Response response = api.adminGetWebhookStatus();
        // TODO: test validations
    }

    /**
     * Initialize webhooks for an organization
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminInitializeWebhooksTest() throws ApiException {
        String organizationId = null;
        api.adminInitializeWebhooks(organizationId);
        // TODO: test validations
    }

    /**
     * List all runners
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminListRunnersTest() throws ApiException {
        String regionId = null;
        List<RunnerFull> response = api.adminListRunners(regionId);
        // TODO: test validations
    }

    /**
     * List all users
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminListUsersTest() throws ApiException {
        api.adminListUsers();
        // TODO: test validations
    }

    /**
     * Recover sandbox from error state as an admin
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminRecoverSandboxTest() throws ApiException {
        String sandboxId = null;
        Sandbox response = api.adminRecoverSandbox(sandboxId);
        // TODO: test validations
    }

    /**
     * Regenerate user key pair
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminRegenerateKeyPairTest() throws ApiException {
        String id = null;
        api.adminRegenerateKeyPair(id);
        // TODO: test validations
    }

    /**
     * Send a webhook message to an organization
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminSendWebhookTest() throws ApiException {
        String organizationId = null;
        SendWebhookDto sendWebhookDto = null;
        api.adminSendWebhook(organizationId, sendWebhookDto);
        // TODO: test validations
    }

    /**
     * Set default registry
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminSetDefaultRegistryTest() throws ApiException {
        String id = null;
        DockerRegistry response = api.adminSetDefaultRegistry(id);
        // TODO: test validations
    }

    /**
     * Set snapshot general status
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminSetSnapshotGeneralStatusTest() throws ApiException {
        String id = null;
        SetSnapshotGeneralStatusDto setSnapshotGeneralStatusDto = null;
        SnapshotDto response = api.adminSetSnapshotGeneralStatus(id, setSnapshotGeneralStatusDto);
        // TODO: test validations
    }

    /**
     * Update runner scheduling status
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void adminUpdateRunnerSchedulingTest() throws ApiException {
        String id = null;
        api.adminUpdateRunnerScheduling(id);
        // TODO: test validations
    }

}
