/*
 * Cloudera Manager API
 * <h1>Cloudera Manager API v57</h1>       <p>Introduced in Cloudera Manager 7.13.1</p>       <p><a href=\"http://www.cloudera.com/documentation.html\">Cloudera Product Documentation</a></p>
 *
 * OpenAPI spec version: 7.13.1
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package com.cloudera.api.swagger;

import com.cloudera.api.swagger.model.ApiCdhUpgradeArgs;
import com.cloudera.api.swagger.model.ApiCluster;
import com.cloudera.api.swagger.model.ApiClusterList;
import com.cloudera.api.swagger.model.ApiClusterPerfInspectorArgs;
import com.cloudera.api.swagger.model.ApiClusterSupportToken;
import com.cloudera.api.swagger.model.ApiClusterTemplate;
import com.cloudera.api.swagger.model.ApiClusterUtilization;
import com.cloudera.api.swagger.model.ApiCommand;
import com.cloudera.api.swagger.model.ApiCommandList;
import com.cloudera.api.swagger.model.ApiConfigureForKerberosArguments;
import com.cloudera.api.swagger.model.ApiEcsDownloadAndDistributeArgs;
import com.cloudera.api.swagger.model.ApiEntityTag;
import com.cloudera.api.swagger.model.ApiHdfsUpgradeDomainList;
import com.cloudera.api.swagger.model.ApiHostList;
import com.cloudera.api.swagger.model.ApiHostRef;
import com.cloudera.api.swagger.model.ApiHostRefList;
import com.cloudera.api.swagger.model.ApiKerberosInfo;
import com.cloudera.api.swagger.model.ApiOzoneBucketInfo;
import com.cloudera.api.swagger.model.ApiOzoneS3GatewayInfo;
import com.cloudera.api.swagger.model.ApiRestartClusterArgs;
import com.cloudera.api.swagger.model.ApiRollingRestartClusterArgs;
import com.cloudera.api.swagger.model.ApiRollingUpgradeServicesArgs;
import com.cloudera.api.swagger.model.ApiRunSpecificHostInspectionsArgs;
import com.cloudera.api.swagger.model.ApiServiceList;
import com.cloudera.api.swagger.model.ApiServiceTypeList;
import java.io.File;
import org.junit.Test;
import org.junit.Ignore;


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


/**
 * API tests for ClustersResourceApi
 */
@Ignore
public class ClustersResourceApiTest {

    private final ClustersResourceApi api = new ClustersResourceApi();

    /**
     * 
     *
     * 
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void addHostsTest() throws Exception {
        String clusterName = null;
        ApiHostRefList body = null;
        ApiHostRefList response = api.addHosts(clusterName, body);

        // TODO: test validations
    }
    /**
     * Attach tags to the cluster.
     *
     * Attach tags to the cluster. Tag names beginning with the prefix _cldr_ (case insensitive) are reserved for internal use by Cloudera.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void addTagsTest() throws Exception {
        String clusterName = null;
        List<ApiEntityTag> body = null;
        List<ApiEntityTag> response = api.addTags(clusterName, body);

        // TODO: test validations
    }
    /**
     * Automatically assign roles to hosts and create the roles for all the services in a cluster.
     *
     * Automatically assign roles to hosts and create the roles for all the services in a cluster. &lt;p&gt; Assignments are done based on services and hosts in the cluster, and hardware specifications. If no hosts are added to the cluster, an exception will be thrown preventing any role assignments. Existing roles will be taken into account and their assignments will be not be modified. &lt;p&gt; Available since API v6.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void autoAssignRolesTest() throws Exception {
        String clusterName = null;
        api.autoAssignRoles(clusterName);

        // TODO: test validations
    }
    /**
     * Automatically configures roles and services in a cluster.
     *
     * Automatically configures roles and services in a cluster. &lt;p&gt; Overwrites some existing configurations. Might create new role config groups. Only default role config groups must exist before calling this endpoint. Other role config groups must not exist. If they do, an exception will be thrown preventing any configuration. Ignores the Cloudera Management Service even if colocated with roles of this cluster. To avoid over-committing the heap on hosts, assign hosts to this cluster that are not being used by the Cloudera Management Service. &lt;p&gt; Available since API v6.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void autoConfigureTest() throws Exception {
        String clusterName = null;
        api.autoConfigure(clusterName);

        // TODO: test validations
    }
    /**
     * 
     *
     * 
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void checkEcsPrerequisitesCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.checkEcsPrerequisitesCommand(clusterName);

        // TODO: test validations
    }
    /**
     * Configures all services in a cluster to use Auto-TLS.
     *
     * Configures all services in a cluster to use Auto-TLS
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void configureAutoTlsServicesCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.configureAutoTlsServicesCommand(clusterName);

        // TODO: test validations
    }
    /**
     * Command to configure the cluster to use Kerberos for authentication.
     *
     * Command to configure the cluster to use Kerberos for authentication.  This command will configure all relevant services on a cluster for Kerberos usage.  This command will trigger a GenerateCredentials command to create Kerberos keytabs for all roles in the cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void configureForKerberosTest() throws Exception {
        String clusterName = null;
        ApiConfigureForKerberosArguments body = null;
        ApiCommand response = api.configureForKerberos(clusterName, body);

        // TODO: test validations
    }
    /**
     * Creates a collection of clusters.
     *
     * Creates a collection of clusters.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void createClustersTest() throws Exception {
        ApiClusterList body = null;
        ApiClusterList response = api.createClusters(body);

        // TODO: test validations
    }
    /**
     * Deletes a cluster.
     *
     * Deletes a cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void deleteClusterTest() throws Exception {
        String clusterName = null;
        ApiCluster response = api.deleteCluster(clusterName);

        // TODO: test validations
    }
    /**
     * Delete existing Kerberos credentials for the cluster.
     *
     * Delete existing Kerberos credentials for the cluster. &lt;p&gt; This command will affect all services that have been configured to use Kerberos, and have existing credentials.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void deleteClusterCredentialsCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.deleteClusterCredentialsCommand(clusterName);

        // TODO: test validations
    }
    /**
     * Remove the tags associated with the cluster.
     *
     * Remove the tags associated with the cluster. Tag names beginning with the prefix _cldr_ (case insensitive) are reserved for internal use by Cloudera.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void deleteTagsTest() throws Exception {
        String clusterName = null;
        List<ApiEntityTag> body = null;
        List<ApiEntityTag> response = api.deleteTags(clusterName, body);

        // TODO: test validations
    }
    /**
     * Deploy the cluster-wide client configuration.
     *
     * Deploy the cluster-wide client configuration.  &lt;p&gt;For each service in the cluster, deploy the service&#x27;s client configuration to all the hosts that the service runs on.&lt;/p&gt;  &lt;p&gt;Available since API v2.&lt;/p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void deployClientConfigTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.deployClientConfig(clusterName);

        // TODO: test validations
    }
    /**
     * Performs a command with the 2 steps - deploy cc - cluster refresh  This orchestration is needed for the staleness wizard, so it can invoke a single command at wizard finish.
     *
     * Performs a command with the 2 steps - deploy cc - cluster refresh  This orchestration is needed for the staleness wizard, so it can invoke a single command at wizard finish.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void deployClientConfigsAndRefreshTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.deployClientConfigsAndRefresh(clusterName);

        // TODO: test validations
    }
    /**
     * Deploy the Cluster&#x27;s Kerberos client configuration.
     *
     * Deploy the Cluster&#x27;s Kerberos client configuration.  &lt;p&gt; Deploy krb5.conf to hosts in a cluster. Does not deploy to decommissioned hosts or hosts with active processes. &lt;/p&gt;  &lt;p&gt; Available since API v7. &lt;/p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void deployClusterClientConfigTest() throws Exception {
        String clusterName = null;
        ApiHostRefList body = null;
        ApiCommand response = api.deployClusterClientConfig(clusterName, body);

        // TODO: test validations
    }
    /**
     * Disables TLS settings on a cluster.
     *
     * Disables TLS settings on a cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void disableTlsTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.disableTls(clusterName);

        // TODO: test validations
    }
    /**
     * 
     *
     * 
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void ecsDownloadAndDistributeTest() throws Exception {
        String clusterName = null;
        ApiEcsDownloadAndDistributeArgs body = null;
        ApiCommand response = api.ecsDownloadAndDistribute(clusterName, body);

        // TODO: test validations
    }
    /**
     * Put the cluster into maintenance mode.
     *
     * Put the cluster into maintenance mode. This is a synchronous command. The result is known immediately upon return.  &lt;p&gt;Available since API v2.&lt;/p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void enterMaintenanceModeTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.enterMaintenanceMode(clusterName);

        // TODO: test validations
    }
    /**
     * Take the cluster out of maintenance mode.
     *
     * Take the cluster out of maintenance mode. This is a synchronous command. The result is known immediately upon return.  &lt;p&gt;Available since API v2.&lt;/p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void exitMaintenanceModeTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.exitMaintenanceMode(clusterName);

        // TODO: test validations
    }
    /**
     * Remove backup and disaster related log files in hdfs.
     *
     * Remove backup and disaster related log files in hdfs.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void expireLogsTest() throws Exception {
        String clusterName = null;
        java.math.BigDecimal days = null;
        Boolean scheduleNext = null;
        ApiCommand response = api.expireLogs(clusterName, days, scheduleNext);

        // TODO: test validations
    }
    /**
     * Export the cluster template for the given cluster.
     *
     * Export the cluster template for the given cluster. If cluster does not have host templates defined it will export host templates based on roles assignment.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void exportTest() throws Exception {
        String clusterName = null;
        Boolean exportAutoConfig = null;
        ApiClusterTemplate response = api.export(clusterName, exportAutoConfig);

        // TODO: test validations
    }
    /**
     * Prepare and start services in a cluster.
     *
     * Prepare and start services in a cluster.  &lt;p&gt; Perform all the steps needed to prepare each service in a cluster and start the services in order. &lt;/p&gt;  &lt;p&gt; Available since API v7. &lt;/p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void firstRunTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.firstRun(clusterName);

        // TODO: test validations
    }
    /**
     * Download a zip-compressed archive of the client configuration, of a specific cluster.
     *
     * Download a zip-compressed archive of the client configuration, of a specific cluster. Currently, this only includes Kerberos Client Configuration (krb5.conf). For client configuration of services, use the clientConfig endpoint of the services resource. This resource does not require any authentication.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void getClientConfigTest() throws Exception {
        String clusterName = null;
        File response = api.getClientConfig(clusterName);

        // TODO: test validations
    }
    /**
     * Gets the support token for a cluster.
     *
     * Gets the support token for a cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void getClusterSupportTokenTest() throws Exception {
        String clusterName = null;
        ApiClusterSupportToken response = api.getClusterSupportToken(clusterName);

        // TODO: test validations
    }
    /**
     * Provides Cluster Kerberos information.
     *
     * Provides Cluster Kerberos information
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void getKerberosInfoTest() throws Exception {
        String clusterName = null;
        ApiKerberosInfo response = api.getKerberosInfo(clusterName);

        // TODO: test validations
    }
    /**
     * Returns the properties of the provided ozone bucket if the bucket exists.
     *
     * Returns the properties of the provided ozone bucket if the bucket exists.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void getOzoneBucketInfoTest() throws Exception {
        String clusterName = null;
        String bucketName = null;
        String volumeName = null;
        ApiOzoneBucketInfo response = api.getOzoneBucketInfo(clusterName, bucketName, volumeName);

        // TODO: test validations
    }
    /**
     * Returns the REST url for the Ozone S3 Gateway, as well as the AWS credentials needed to access the S3 endpoint.
     *
     * Returns the REST url for the Ozone S3 Gateway, as well as the AWS credentials needed to access the S3 endpoint. Additionally, creates a bucket with the specified name under the volume s3v. If no Ozone is present, or Ozone is not running, returns success with an empty response.  Currently, we get the credentials for the Hive kerberos principal, and give ownership of the created bucket to the same. This is likely not a permanent solution. If the cluster is not kerberizied, we return dummy credentials.  Requires CDH 7.2.1+ or CDH 7.1.3+
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void getOzoneS3GatewayInfoTest() throws Exception {
        String clusterName = null;
        String bucketName = null;
        ApiOzoneS3GatewayInfo response = api.getOzoneS3GatewayInfo(clusterName, bucketName);

        // TODO: test validations
    }
    /**
     * Provides the resource utilization of the entire cluster as well as the resource utilization per tenant.
     *
     * Provides the resource utilization of the entire cluster as well as the resource utilization per tenant. Only available with Cloudera Manager Enterprise Edition.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void getUtilizationReportTest() throws Exception {
        String clusterName = null;
        List<String> daysOfWeek = null;
        java.math.BigDecimal endHourOfDay = null;
        String from = null;
        java.math.BigDecimal startHourOfDay = null;
        String tenantType = null;
        String to = null;
        ApiClusterUtilization response = api.getUtilizationReport(clusterName, daysOfWeek, endHourOfDay, from, startHourOfDay, tenantType, to);

        // TODO: test validations
    }
    /**
     * Runs the host inspector on the configured hosts in the specified cluster.
     *
     * Runs the host inspector on the configured hosts in the specified cluster.  Available since V8.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void inspectHostsCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.inspectHostsCommand(clusterName);

        // TODO: test validations
    }
    /**
     * Returns whether a cluster has any TLS settings enabled.
     *
     * Returns whether a cluster has any TLS settings enabled. This only checks settings that would have been enabled by Auto-TLS.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void isTlsEnabledTest() throws Exception {
        String clusterName = null;
        Boolean response = api.isTlsEnabled(clusterName);

        // TODO: test validations
    }
    /**
     * List active cluster commands.
     *
     * List active cluster commands.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void listActiveCommandsTest() throws Exception {
        String clusterName = null;
        String commandName = null;
        String view = null;
        ApiCommandList response = api.listActiveCommands(clusterName, commandName, view);

        // TODO: test validations
    }
    /**
     * List the services that can provide distributed file system (DFS) capabilities in this cluster.
     *
     * List the services that can provide distributed file system (DFS) capabilities in this cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void listDfsServicesTest() throws Exception {
        String clusterName = null;
        String view = null;
        ApiServiceList response = api.listDfsServices(clusterName, view);

        // TODO: test validations
    }
    /**
     * Returns hosts in the system filtered by optional host configuration parameters, if specified.
     *
     * Returns hosts in the system filtered by optional host configuration parameters, if specified.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void listHostsTest() throws Exception {
        String clusterName = null;
        String configName = null;
        String configValue = null;
        String view = null;
        ApiHostList response = api.listHosts(clusterName, configName, configValue, view);

        // TODO: test validations
    }
    /**
     * List the supported service types for a cluster.
     *
     * List the supported service types for a cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void listServiceTypesTest() throws Exception {
        String clusterName = null;
        ApiServiceTypeList response = api.listServiceTypes(clusterName);

        // TODO: test validations
    }
    /**
     * Returns the Upgrade Domains associated with the cluster and the host names that belong to each Upgrade Domain.
     *
     * Returns the Upgrade Domains associated with the cluster and the host names that belong to each Upgrade Domain. Hosts without an Upgrade Domain set will default to using the rack assignment of the host.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void listUpgradeDomainsTest() throws Exception {
        String clusterName = null;
        ApiHdfsUpgradeDomainList response = api.listUpgradeDomains(clusterName);

        // TODO: test validations
    }
    /**
     * Run cluster performance diagnostics test.
     *
     * Run cluster performance diagnostics test.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void perfInspectorCommandTest() throws Exception {
        String clusterName = null;
        ApiClusterPerfInspectorArgs body = null;
        ApiCommand response = api.perfInspectorCommand(clusterName, body);

        // TODO: test validations
    }
    /**
     * Updates all refreshable configuration files for services with Dynamic Resource Pools.
     *
     * Updates all refreshable configuration files for services with Dynamic Resource Pools. &lt;p&gt; Available since API v6.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void poolsRefreshTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.poolsRefresh(clusterName);

        // TODO: test validations
    }
    /**
     * Post Cloudera Runtime upgrade API.
     *
     * Post Cloudera Runtime upgrade API. &lt;p&gt; This API executes special finalization tasks (already part of regular CDH upgrade) after the installation of an updated build of Cloudera Runtime (no version change). No version change of Cloudera Rumtime means when first 3 digits of build remains the same (e.g. from 7.2.1.a to 7.2.1.b) during upgrade. Purpose of this is to automate manual tasks of CDH upgrade. &lt;p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void postClouderaRuntimeUpgradeTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.postClouderaRuntimeUpgrade(clusterName);

        // TODO: test validations
    }
    /**
     * Run cluster pre-upgrade check(s) when upgrading from specified version of CDH to the other.
     *
     * Run cluster pre-upgrade check(s) when upgrading from specified version of CDH to the other. &lt;p&gt; Allows the following upgrade checks: &lt;ul&gt; &lt;li&gt;Minor upgrades from any CDH 5 to any CDH 5&lt;/li&gt; &lt;li&gt;Major upgrades from any CDH 5 to any CDH 6&lt;/li&gt; &lt;li&gt;Minor upgrades from any CDH 6 to any CDH 6&lt;/li&gt; &lt;li&gt;Maintenance upgrades or downgrades (a.b.x to a.b.y)&lt;/li&gt; &lt;/ul&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void preUpgradeCheckCommandTest() throws Exception {
        String clusterName = null;
        ApiCdhUpgradeArgs body = null;
        ApiCommand response = api.preUpgradeCheckCommand(clusterName, body);

        // TODO: test validations
    }
    /**
     * Reads information about a cluster.
     *
     * Reads information about a cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void readClusterTest() throws Exception {
        String clusterName = null;
        String view = null;
        ApiCluster response = api.readCluster(clusterName, view);

        // TODO: test validations
    }
    /**
     * List all known clusters.
     *
     * List all known clusters.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void readClustersTest() throws Exception {
        String clusterType = null;
        String view = null;
        ApiClusterList response = api.readClusters(clusterType, view);

        // TODO: test validations
    }
    /**
     * Returns the tags associated with this cluster.
     *
     * Returns the tags associated with this cluster. Tag names beginning with the prefix _cldr_ (case insensitive) are reserved for internal use by Cloudera.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void readTagsTest() throws Exception {
        String clusterName = null;
        java.math.BigDecimal limit = null;
        java.math.BigDecimal offset = null;
        List<ApiEntityTag> response = api.readTags(clusterName, limit, offset);

        // TODO: test validations
    }
    /**
     * Updates all refreshable configuration files in the cluster.
     *
     * Updates all refreshable configuration files in the cluster. Will not restart any roles. &lt;p&gt; Available since API v6.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void refreshTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.refresh(clusterName);

        // TODO: test validations
    }
    /**
     * 
     *
     * 
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void removeAllHostsTest() throws Exception {
        String clusterName = null;
        ApiHostRefList response = api.removeAllHosts(clusterName);

        // TODO: test validations
    }
    /**
     * 
     *
     * 
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void removeHostTest() throws Exception {
        String clusterName = null;
        String hostId = null;
        ApiHostRef response = api.removeHost(clusterName, hostId);

        // TODO: test validations
    }
    /**
     * Restart all services in the cluster.
     *
     * Restart all services in the cluster. &lt;p&gt; Services are stopped then started in the appropriate order given their dependencies. The command can optionally restart only stale services and their dependencies as well as redeploy client configuration on all services in the cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void restartCommandTest() throws Exception {
        String clusterName = null;
        ApiRestartClusterArgs body = null;
        ApiCommand response = api.restartCommand(clusterName, body);

        // TODO: test validations
    }
    /**
     * Command to do a \&quot;best-effort\&quot; rolling restart of the given cluster, i.
     *
     * Command to do a \&quot;best-effort\&quot; rolling restart of the given cluster, i.e. it does plain restart of services that cannot be rolling restarted, followed by first rolling restarting non-slaves and then rolling restarting the slave roles of services that can be rolling restarted. The slave restarts are done host-by-host. &lt;p&gt; Available since API v4. Only available with Cloudera Manager Enterprise Edition.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void rollingRestartTest() throws Exception {
        String clusterName = null;
        ApiRollingRestartClusterArgs body = null;
        ApiCommand response = api.rollingRestart(clusterName, body);

        // TODO: test validations
    }
    /**
     * Command to do a rolling upgrade of specific services in the given cluster  This command does not handle any services that don&#x27;t support rolling upgrades.
     *
     * Command to do a rolling upgrade of specific services in the given cluster  This command does not handle any services that don&#x27;t support rolling upgrades. The command will throw an error and not start if upgrade of any such service is requested.  This command does not upgrade the full CDH Cluster. You should normally use the upgradeCDH Command for upgrading the cluster. This is primarily helpful if you need to need to recover from an upgrade failure or for advanced users to script an alternative to the upgradeCdhCommand.  This command expects the binaries to be available on hosts and activated. It does not change any binaries on the hosts.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void rollingUpgradeTest() throws Exception {
        String clusterName = null;
        ApiRollingUpgradeServicesArgs body = null;
        ApiCommand response = api.rollingUpgrade(clusterName, body);

        // TODO: test validations
    }
    /**
     * Executes an Ozone shell command on an Ozone Role.
     *
     * Executes an Ozone shell command on an Ozone Role. The command needs to be defined as a RoleCommand in CM (Eg GetOzoneBucketInfoCommand).
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void runOzoneCommandTest() throws Exception {
        String clusterName = null;
        String bucketName = null;
        String commandName = null;
        String volumeName = null;
        ApiCommand response = api.runOzoneCommand(clusterName, bucketName, commandName, volumeName);

        // TODO: test validations
    }
    /**
     * Runs a specific list of host inspections.
     *
     * Runs a specific list of host inspections. &lt;p&gt; This command runs the ClusterInspectorCommand, which runs the host inspections for all the hosts in a cluster. More specifically, this command will run a specific list of host inspections specified by the user. If no host inspection list name is provided, the default list of inspections will be ran. &lt;/p&gt;
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void runSpecificHostInspectionsCommandTest() throws Exception {
        String clusterName = null;
        ApiRunSpecificHostInspectionsArgs body = null;
        ApiCommand response = api.runSpecificHostInspectionsCommand(clusterName, body);

        // TODO: test validations
    }
    /**
     * Start all services in the cluster.
     *
     * Start all services in the cluster. &lt;p&gt; Services are started in the appropriate order given their dependencies.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void startCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.startCommand(clusterName);

        // TODO: test validations
    }
    /**
     * Stop all services in the cluster.
     *
     * Stop all services in the cluster. &lt;p&gt; Services are stopped in the appropriate order given their dependencies.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void stopCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.stopCommand(clusterName);

        // TODO: test validations
    }
    /**
     * Tear Down Workload cluster.
     *
     * Tear Down Workload cluster. &lt;p&gt; Tear Down Ranger plugin service (repository) associated with the workload cluster.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void tearDownWorkloadClusterTest() throws Exception {
        String clusterName = null;
        String workloadClusterName = null;
        ApiCommand response = api.tearDownWorkloadCluster(clusterName, workloadClusterName);

        // TODO: test validations
    }
    /**
     * Update an existing cluster.
     *
     * Update an existing cluster. &lt;p&gt; To update the CDH version, provide the new value in the \&quot;fullVersion\&quot; property. Setting a correct version that matches the actual installed software will ensure the correct version-specific features, such as services, roles, commands, and configurations. This need not be manually set for clusters using parcels. In general this action is only necessary after the CDH packages have been manually updated. Note that a downgrade may be rejected if it would render existing services or roles unusable. For major upgrade, the \&quot;upgradeService\&quot; cluster command should be used instead.&lt;/p&gt; &lt;p&gt; To rename the cluster, provide the new name in the \&quot;displayName\&quot; property for API &gt;&#x3D; 6, or in the \&quot;name\&quot; property for API &lt;&#x3D;5. &lt;p&gt; Available since API v2.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void updateClusterTest() throws Exception {
        String clusterName = null;
        ApiCluster body = null;
        ApiCluster response = api.updateCluster(clusterName, body);

        // TODO: test validations
    }
    /**
     * Perform CDH upgrade to the specified version.
     *
     * Perform CDH upgrade to the specified version. &lt;p&gt; Allows the following upgrades: &lt;ul&gt; &lt;li&gt;Major upgrades from any CDH 4 to any CDH 5&lt;/li&gt; &lt;li&gt;Minor upgrades from any CDH 5 to any CDH 5&lt;/li&gt; &lt;li&gt;Maintenance upgrades or downgrades (a.b.x to a.b.y)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt; If using packages, CDH packages on all hosts of the cluster must be manually upgraded before this command is issued. &lt;p&gt; The command will upgrade the services and their configuration to the version available in the CDH5 distribution. &lt;p&gt; Unless rolling upgrade options are provided, the entire cluster will experience downtime. If rolling upgrade options are provided, command will do a \&quot;best-effort\&quot; rolling upgrade of the given cluster, i.e. it does plain upgrade of services that cannot be rolling upgraded, followed by first rolling upgrading non-slaves and then rolling restarting the slave roles of services that can be rolling restarted. The slave restarts are done host-by-host. &lt;p&gt; Available since v9. Rolling upgrade is only available with Cloudera Manager Enterprise Edition. A more limited upgrade variant available since v6.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void upgradeCdhCommandTest() throws Exception {
        String clusterName = null;
        ApiCdhUpgradeArgs body = null;
        ApiCommand response = api.upgradeCdhCommand(clusterName, body);

        // TODO: test validations
    }
    /**
     * Upgrades the services in the cluster to the CDH5 version.
     *
     * Upgrades the services in the cluster to the CDH5 version. &lt;p&gt; This command requires that the CDH packages in the hosts used by the cluster be upgraded to CDH5 before this command is issued. Once issued, this command will stop all running services before proceeding. &lt;p&gt; If parcels are used instead of CDH system packages then the following steps need to happen in order: &lt;ol&gt; &lt;li&gt;Stop all services manually&lt;/li&gt; &lt;li&gt;Activate parcel&lt;/li&gt; &lt;li&gt;Run this upgrade command&lt;/li&gt; &lt;/ol&gt; The command will upgrade the services and their configuration to the version available in the CDH5 distribution.
     *
     * @throws Exception
     *          if the Api call fails
     */
    @Test
    public void upgradeServicesCommandTest() throws Exception {
        String clusterName = null;
        ApiCommand response = api.upgradeServicesCommand(clusterName);

        // TODO: test validations
    }
}
