/* tslint:disable */
/* eslint-disable */
/**
 * Authorization Service API
 * Enables access control on resources of OCM services
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
import globalAxios from 'axios';
// Some imports not used depending on template conditions
// @ts-ignore
import {
  DUMMY_BASE_URL,
  assertParamExists,
  setApiKeyToObject,
  setBasicAuthToObject,
  setBearerAuthToObject,
  setOAuthToObject,
  setSearchParams,
  serializeDataIfNeeded,
  toPathString,
  createRequestFunction,
} from '../common';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
// @ts-ignore
import { AccessReview } from '../models';
// @ts-ignore
import { AccessReviewResponse } from '../models';
// @ts-ignore
import { CapabilityReview } from '../models';
// @ts-ignore
import { CapabilityReviewRequest } from '../models';
// @ts-ignore
import { ExportControlReview } from '../models';
// @ts-ignore
import { ExportControlReviewRequest } from '../models';
// @ts-ignore
import { FeatureReview } from '../models';
// @ts-ignore
import { FeatureReviewResponse } from '../models';
// @ts-ignore
import { ResourceReview } from '../models';
// @ts-ignore
import { ResourceReviewRequest } from '../models';
// @ts-ignore
import { SelfAccessReview } from '../models';
// @ts-ignore
import { SelfFeatureReview } from '../models';
// @ts-ignore
import { SelfResourceReview } from '../models';
// @ts-ignore
import { SelfResourceReviewRequest } from '../models';
// @ts-ignore
import { SelfTermsReview } from '../models';
// @ts-ignore
import { TermsReview } from '../models';
// @ts-ignore
import { TermsReviewResponse } from '../models';
/**
 * DefaultApi - axios parameter creator
 * @export
 */
export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) {
  return {
    /**
     *
     * @summary Review an account\'s access to perform an action on a particular resource or resource type
     * @param {AccessReview} accessReview Access review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1AccessReviewPost: async (
      accessReview: AccessReview,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'accessReview' is not null or undefined
      assertParamExists('apiAuthorizationsV1AccessReviewPost', 'accessReview', accessReview);
      const localVarPath = `/api/authorizations/v1/access_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        accessReview,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Review an account\'s capabilities
     * @param {CapabilityReviewRequest} capabilityReviewRequest Capability review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1CapabilityReviewPost: async (
      capabilityReviewRequest: CapabilityReviewRequest,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'capabilityReviewRequest' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1CapabilityReviewPost',
        'capabilityReviewRequest',
        capabilityReviewRequest,
      );
      const localVarPath = `/api/authorizations/v1/capability_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        capabilityReviewRequest,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Determine whether a user is restricted from downloading Red Hat software based on export control compliance.
     * @param {ExportControlReviewRequest} exportControlReviewRequest Export control review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1ExportControlReviewPost: async (
      exportControlReviewRequest: ExportControlReviewRequest,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'exportControlReviewRequest' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1ExportControlReviewPost',
        'exportControlReviewRequest',
        exportControlReviewRequest,
      );
      const localVarPath = `/api/authorizations/v1/export_control_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        exportControlReviewRequest,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Review feature to perform an action on it such as toggle a feature on/off
     * @param {FeatureReview} featureReview Feature review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1FeatureReviewPost: async (
      featureReview: FeatureReview,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'featureReview' is not null or undefined
      assertParamExists('apiAuthorizationsV1FeatureReviewPost', 'featureReview', featureReview);
      const localVarPath = `/api/authorizations/v1/feature_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        featureReview,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Obtain resource ids for resources an account may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
     * @param {ResourceReviewRequest} resourceReviewRequest Resource review data
     * @param {boolean} [reduceClusterList] If true, When returning a list of cluster_ids/cluster_uuids/subscription_ids, if those are already included in one of the organizations provided in organization_ids, do not include it in the list.
     * @param {string} [excludeSubscriptionStatuses] A comma-separated list of subscription statuses. Subscriptions with these statuses will be excluded from results. This options is mutually exclusive with includeSubscriptionStatuses.
     * @param {string} [includeSubscriptionStatuses] A comma-separated list of subscription statuses. Only subscriptions with these statuses will be included into results. This options is mutually exclusive with excludeSubscriptionStatuses.
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     */
    apiAuthorizationsV1ResourceReviewPost: async (
      resourceReviewRequest: ResourceReviewRequest,
      reduceClusterList?: boolean,
      excludeSubscriptionStatuses?: string,
      includeSubscriptionStatuses?: string,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'resourceReviewRequest' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1ResourceReviewPost',
        'resourceReviewRequest',
        resourceReviewRequest,
      );
      const localVarPath = `/api/authorizations/v1/resource_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      if (reduceClusterList !== undefined) {
        localVarQueryParameter['reduceClusterList'] = reduceClusterList;
      }

      if (excludeSubscriptionStatuses !== undefined) {
        localVarQueryParameter['excludeSubscriptionStatuses'] = excludeSubscriptionStatuses;
      }

      if (includeSubscriptionStatuses !== undefined) {
        localVarQueryParameter['includeSubscriptionStatuses'] = includeSubscriptionStatuses;
      }

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        resourceReviewRequest,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Review your ability to perform an action on a particular resource or resource type
     * @param {SelfAccessReview} selfAccessReview Self access review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfAccessReviewPost: async (
      selfAccessReview: SelfAccessReview,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'selfAccessReview' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1SelfAccessReviewPost',
        'selfAccessReview',
        selfAccessReview,
      );
      const localVarPath = `/api/authorizations/v1/self_access_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        selfAccessReview,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Review your ability to toggle a feature
     * @param {SelfFeatureReview} selfFeatureReview Self feature review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfFeatureReviewPost: async (
      selfFeatureReview: SelfFeatureReview,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'selfFeatureReview' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1SelfFeatureReviewPost',
        'selfFeatureReview',
        selfFeatureReview,
      );
      const localVarPath = `/api/authorizations/v1/self_feature_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        selfFeatureReview,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Obtain resource ids for resources you may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
     * @param {SelfResourceReviewRequest} selfResourceReviewRequest Self resource review data
     * @param {boolean} [reduceClusterList] If true, When returning a list of cluster_ids/cluster_uuids/subscription_ids, if those are already included in one of the organizations provided in organization_ids, do not include it in the list.
     * @param {string} [excludeSubscriptionStatuses] A comma-separated list of subscription statuses. Subscriptions with these statuses will be excluded from results. This options is mutually exclusive with includeSubscriptionStatuses.
     * @param {string} [includeSubscriptionStatuses] A comma-separated list of subscription statuses. Only subscriptions with these statuses will be included into results. This options is mutually exclusive with excludeSubscriptionStatuses.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfResourceReviewPost: async (
      selfResourceReviewRequest: SelfResourceReviewRequest,
      reduceClusterList?: boolean,
      excludeSubscriptionStatuses?: string,
      includeSubscriptionStatuses?: string,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'selfResourceReviewRequest' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1SelfResourceReviewPost',
        'selfResourceReviewRequest',
        selfResourceReviewRequest,
      );
      const localVarPath = `/api/authorizations/v1/self_resource_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      if (reduceClusterList !== undefined) {
        localVarQueryParameter['reduceClusterList'] = reduceClusterList;
      }

      if (excludeSubscriptionStatuses !== undefined) {
        localVarQueryParameter['excludeSubscriptionStatuses'] = excludeSubscriptionStatuses;
      }

      if (includeSubscriptionStatuses !== undefined) {
        localVarQueryParameter['includeSubscriptionStatuses'] = includeSubscriptionStatuses;
      }

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        selfResourceReviewRequest,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Review your status of Terms
     * @param {SelfTermsReview} selfTermsReview Data to check self terms for
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfTermsReviewPost: async (
      selfTermsReview: SelfTermsReview,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'selfTermsReview' is not null or undefined
      assertParamExists(
        'apiAuthorizationsV1SelfTermsReviewPost',
        'selfTermsReview',
        selfTermsReview,
      );
      const localVarPath = `/api/authorizations/v1/self_terms_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        selfTermsReview,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
    /**
     *
     * @summary Review an account\'s status of Terms
     * @param {TermsReview} termsReview Data to check terms for
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1TermsReviewPost: async (
      termsReview: TermsReview,
      options: AxiosRequestConfig = {},
    ): Promise<RequestArgs> => {
      // verify required parameter 'termsReview' is not null or undefined
      assertParamExists('apiAuthorizationsV1TermsReviewPost', 'termsReview', termsReview);
      const localVarPath = `/api/authorizations/v1/terms_review`;
      // use dummy base URL string because the URL constructor only accepts absolute URLs.
      const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
      let baseOptions;
      if (configuration) {
        baseOptions = configuration.baseOptions;
      }

      const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
      const localVarHeaderParameter = {} as any;
      const localVarQueryParameter = {} as any;

      // authentication Bearer required
      // http bearer authentication required
      await setBearerAuthToObject(localVarHeaderParameter, configuration);

      localVarHeaderParameter['Content-Type'] = 'application/json';

      setSearchParams(localVarUrlObj, localVarQueryParameter);
      let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
      localVarRequestOptions.headers = {
        ...localVarHeaderParameter,
        ...headersFromBaseOptions,
        ...options.headers,
      };
      localVarRequestOptions.data = serializeDataIfNeeded(
        termsReview,
        localVarRequestOptions,
        configuration,
      );

      return {
        url: toPathString(localVarUrlObj),
        options: localVarRequestOptions,
      };
    },
  };
};

/**
 * DefaultApi - functional programming interface
 * @export
 */
export const DefaultApiFp = function (configuration?: Configuration) {
  const localVarAxiosParamCreator = DefaultApiAxiosParamCreator(configuration);
  return {
    /**
     *
     * @summary Review an account\'s access to perform an action on a particular resource or resource type
     * @param {AccessReview} accessReview Access review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1AccessReviewPost(
      accessReview: AccessReview,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccessReviewResponse>> {
      const localVarAxiosArgs = await localVarAxiosParamCreator.apiAuthorizationsV1AccessReviewPost(
        accessReview,
        options,
      );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Review an account\'s capabilities
     * @param {CapabilityReviewRequest} capabilityReviewRequest Capability review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1CapabilityReviewPost(
      capabilityReviewRequest: CapabilityReviewRequest,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CapabilityReview>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1CapabilityReviewPost(
          capabilityReviewRequest,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Determine whether a user is restricted from downloading Red Hat software based on export control compliance.
     * @param {ExportControlReviewRequest} exportControlReviewRequest Export control review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1ExportControlReviewPost(
      exportControlReviewRequest: ExportControlReviewRequest,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExportControlReview>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1ExportControlReviewPost(
          exportControlReviewRequest,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Review feature to perform an action on it such as toggle a feature on/off
     * @param {FeatureReview} featureReview Feature review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1FeatureReviewPost(
      featureReview: FeatureReview,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<FeatureReviewResponse>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1FeatureReviewPost(
          featureReview,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Obtain resource ids for resources an account may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
     * @param {ResourceReviewRequest} resourceReviewRequest Resource review data
     * @param {boolean} [reduceClusterList] If true, When returning a list of cluster_ids/cluster_uuids/subscription_ids, if those are already included in one of the organizations provided in organization_ids, do not include it in the list.
     * @param {string} [excludeSubscriptionStatuses] A comma-separated list of subscription statuses. Subscriptions with these statuses will be excluded from results. This options is mutually exclusive with includeSubscriptionStatuses.
     * @param {string} [includeSubscriptionStatuses] A comma-separated list of subscription statuses. Only subscriptions with these statuses will be included into results. This options is mutually exclusive with excludeSubscriptionStatuses.
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1ResourceReviewPost(
      resourceReviewRequest: ResourceReviewRequest,
      reduceClusterList?: boolean,
      excludeSubscriptionStatuses?: string,
      includeSubscriptionStatuses?: string,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ResourceReview>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1ResourceReviewPost(
          resourceReviewRequest,
          reduceClusterList,
          excludeSubscriptionStatuses,
          includeSubscriptionStatuses,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Review your ability to perform an action on a particular resource or resource type
     * @param {SelfAccessReview} selfAccessReview Self access review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1SelfAccessReviewPost(
      selfAccessReview: SelfAccessReview,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccessReviewResponse>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1SelfAccessReviewPost(
          selfAccessReview,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Review your ability to toggle a feature
     * @param {SelfFeatureReview} selfFeatureReview Self feature review data
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1SelfFeatureReviewPost(
      selfFeatureReview: SelfFeatureReview,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<FeatureReviewResponse>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1SelfFeatureReviewPost(
          selfFeatureReview,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Obtain resource ids for resources you may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
     * @param {SelfResourceReviewRequest} selfResourceReviewRequest Self resource review data
     * @param {boolean} [reduceClusterList] If true, When returning a list of cluster_ids/cluster_uuids/subscription_ids, if those are already included in one of the organizations provided in organization_ids, do not include it in the list.
     * @param {string} [excludeSubscriptionStatuses] A comma-separated list of subscription statuses. Subscriptions with these statuses will be excluded from results. This options is mutually exclusive with includeSubscriptionStatuses.
     * @param {string} [includeSubscriptionStatuses] A comma-separated list of subscription statuses. Only subscriptions with these statuses will be included into results. This options is mutually exclusive with excludeSubscriptionStatuses.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1SelfResourceReviewPost(
      selfResourceReviewRequest: SelfResourceReviewRequest,
      reduceClusterList?: boolean,
      excludeSubscriptionStatuses?: string,
      includeSubscriptionStatuses?: string,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SelfResourceReview>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1SelfResourceReviewPost(
          selfResourceReviewRequest,
          reduceClusterList,
          excludeSubscriptionStatuses,
          includeSubscriptionStatuses,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Review your status of Terms
     * @param {SelfTermsReview} selfTermsReview Data to check self terms for
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1SelfTermsReviewPost(
      selfTermsReview: SelfTermsReview,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TermsReviewResponse>> {
      const localVarAxiosArgs =
        await localVarAxiosParamCreator.apiAuthorizationsV1SelfTermsReviewPost(
          selfTermsReview,
          options,
        );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
    /**
     *
     * @summary Review an account\'s status of Terms
     * @param {TermsReview} termsReview Data to check terms for
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    async apiAuthorizationsV1TermsReviewPost(
      termsReview: TermsReview,
      options?: AxiosRequestConfig,
    ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TermsReviewResponse>> {
      const localVarAxiosArgs = await localVarAxiosParamCreator.apiAuthorizationsV1TermsReviewPost(
        termsReview,
        options,
      );
      return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
    },
  };
};

/**
 * DefaultApi - factory interface
 * @export
 */
export const DefaultApiFactory = function (
  configuration?: Configuration,
  basePath?: string,
  axios?: AxiosInstance,
) {
  const localVarFp = DefaultApiFp(configuration);
  return {
    /**
     *
     * @summary Review an account\'s access to perform an action on a particular resource or resource type
     * @param {DefaultApiApiAuthorizationsV1AccessReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1AccessReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1AccessReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<AccessReviewResponse> {
      return localVarFp
        .apiAuthorizationsV1AccessReviewPost(requestParameters.accessReview, options)
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Review an account\'s capabilities
     * @param {DefaultApiApiAuthorizationsV1CapabilityReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1CapabilityReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1CapabilityReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<CapabilityReview> {
      return localVarFp
        .apiAuthorizationsV1CapabilityReviewPost(requestParameters.capabilityReviewRequest, options)
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Determine whether a user is restricted from downloading Red Hat software based on export control compliance.
     * @param {DefaultApiApiAuthorizationsV1ExportControlReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1ExportControlReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1ExportControlReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<ExportControlReview> {
      return localVarFp
        .apiAuthorizationsV1ExportControlReviewPost(
          requestParameters.exportControlReviewRequest,
          options,
        )
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Review feature to perform an action on it such as toggle a feature on/off
     * @param {DefaultApiApiAuthorizationsV1FeatureReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1FeatureReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1FeatureReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<FeatureReviewResponse> {
      return localVarFp
        .apiAuthorizationsV1FeatureReviewPost(requestParameters.featureReview, options)
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Obtain resource ids for resources an account may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
     * @param {DefaultApiApiAuthorizationsV1ResourceReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @deprecated
     * @throws {RequiredError}
     */
    apiAuthorizationsV1ResourceReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1ResourceReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<ResourceReview> {
      return localVarFp
        .apiAuthorizationsV1ResourceReviewPost(
          requestParameters.resourceReviewRequest,
          requestParameters.reduceClusterList,
          requestParameters.excludeSubscriptionStatuses,
          requestParameters.includeSubscriptionStatuses,
          options,
        )
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Review your ability to perform an action on a particular resource or resource type
     * @param {DefaultApiApiAuthorizationsV1SelfAccessReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfAccessReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1SelfAccessReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<AccessReviewResponse> {
      return localVarFp
        .apiAuthorizationsV1SelfAccessReviewPost(requestParameters.selfAccessReview, options)
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Review your ability to toggle a feature
     * @param {DefaultApiApiAuthorizationsV1SelfFeatureReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfFeatureReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1SelfFeatureReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<FeatureReviewResponse> {
      return localVarFp
        .apiAuthorizationsV1SelfFeatureReviewPost(requestParameters.selfFeatureReview, options)
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Obtain resource ids for resources you may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
     * @param {DefaultApiApiAuthorizationsV1SelfResourceReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfResourceReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1SelfResourceReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<SelfResourceReview> {
      return localVarFp
        .apiAuthorizationsV1SelfResourceReviewPost(
          requestParameters.selfResourceReviewRequest,
          requestParameters.reduceClusterList,
          requestParameters.excludeSubscriptionStatuses,
          requestParameters.includeSubscriptionStatuses,
          options,
        )
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Review your status of Terms
     * @param {DefaultApiApiAuthorizationsV1SelfTermsReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1SelfTermsReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1SelfTermsReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<TermsReviewResponse> {
      return localVarFp
        .apiAuthorizationsV1SelfTermsReviewPost(requestParameters.selfTermsReview, options)
        .then((request) => request(axios, basePath));
    },
    /**
     *
     * @summary Review an account\'s status of Terms
     * @param {DefaultApiApiAuthorizationsV1TermsReviewPostRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    apiAuthorizationsV1TermsReviewPost(
      requestParameters: DefaultApiApiAuthorizationsV1TermsReviewPostRequest,
      options?: AxiosRequestConfig,
    ): AxiosPromise<TermsReviewResponse> {
      return localVarFp
        .apiAuthorizationsV1TermsReviewPost(requestParameters.termsReview, options)
        .then((request) => request(axios, basePath));
    },
  };
};

/**
 * Request parameters for apiAuthorizationsV1AccessReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1AccessReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1AccessReviewPostRequest {
  /**
   * Access review data
   * @type {AccessReview}
   * @memberof DefaultApiApiAuthorizationsV1AccessReviewPost
   */
  readonly accessReview: AccessReview;
}

/**
 * Request parameters for apiAuthorizationsV1CapabilityReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1CapabilityReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1CapabilityReviewPostRequest {
  /**
   * Capability review data
   * @type {CapabilityReviewRequest}
   * @memberof DefaultApiApiAuthorizationsV1CapabilityReviewPost
   */
  readonly capabilityReviewRequest: CapabilityReviewRequest;
}

/**
 * Request parameters for apiAuthorizationsV1ExportControlReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1ExportControlReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1ExportControlReviewPostRequest {
  /**
   * Export control review data
   * @type {ExportControlReviewRequest}
   * @memberof DefaultApiApiAuthorizationsV1ExportControlReviewPost
   */
  readonly exportControlReviewRequest: ExportControlReviewRequest;
}

/**
 * Request parameters for apiAuthorizationsV1FeatureReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1FeatureReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1FeatureReviewPostRequest {
  /**
   * Feature review data
   * @type {FeatureReview}
   * @memberof DefaultApiApiAuthorizationsV1FeatureReviewPost
   */
  readonly featureReview: FeatureReview;
}

/**
 * Request parameters for apiAuthorizationsV1ResourceReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1ResourceReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1ResourceReviewPostRequest {
  /**
   * Resource review data
   * @type {ResourceReviewRequest}
   * @memberof DefaultApiApiAuthorizationsV1ResourceReviewPost
   */
  readonly resourceReviewRequest: ResourceReviewRequest;

  /**
   * If true, When returning a list of cluster_ids/cluster_uuids/subscription_ids, if those are already included in one of the organizations provided in organization_ids, do not include it in the list.
   * @type {boolean}
   * @memberof DefaultApiApiAuthorizationsV1ResourceReviewPost
   */
  readonly reduceClusterList?: boolean;

  /**
   * A comma-separated list of subscription statuses. Subscriptions with these statuses will be excluded from results. This options is mutually exclusive with includeSubscriptionStatuses.
   * @type {string}
   * @memberof DefaultApiApiAuthorizationsV1ResourceReviewPost
   */
  readonly excludeSubscriptionStatuses?: string;

  /**
   * A comma-separated list of subscription statuses. Only subscriptions with these statuses will be included into results. This options is mutually exclusive with excludeSubscriptionStatuses.
   * @type {string}
   * @memberof DefaultApiApiAuthorizationsV1ResourceReviewPost
   */
  readonly includeSubscriptionStatuses?: string;
}

/**
 * Request parameters for apiAuthorizationsV1SelfAccessReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1SelfAccessReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1SelfAccessReviewPostRequest {
  /**
   * Self access review data
   * @type {SelfAccessReview}
   * @memberof DefaultApiApiAuthorizationsV1SelfAccessReviewPost
   */
  readonly selfAccessReview: SelfAccessReview;
}

/**
 * Request parameters for apiAuthorizationsV1SelfFeatureReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1SelfFeatureReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1SelfFeatureReviewPostRequest {
  /**
   * Self feature review data
   * @type {SelfFeatureReview}
   * @memberof DefaultApiApiAuthorizationsV1SelfFeatureReviewPost
   */
  readonly selfFeatureReview: SelfFeatureReview;
}

/**
 * Request parameters for apiAuthorizationsV1SelfResourceReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1SelfResourceReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1SelfResourceReviewPostRequest {
  /**
   * Self resource review data
   * @type {SelfResourceReviewRequest}
   * @memberof DefaultApiApiAuthorizationsV1SelfResourceReviewPost
   */
  readonly selfResourceReviewRequest: SelfResourceReviewRequest;

  /**
   * If true, When returning a list of cluster_ids/cluster_uuids/subscription_ids, if those are already included in one of the organizations provided in organization_ids, do not include it in the list.
   * @type {boolean}
   * @memberof DefaultApiApiAuthorizationsV1SelfResourceReviewPost
   */
  readonly reduceClusterList?: boolean;

  /**
   * A comma-separated list of subscription statuses. Subscriptions with these statuses will be excluded from results. This options is mutually exclusive with includeSubscriptionStatuses.
   * @type {string}
   * @memberof DefaultApiApiAuthorizationsV1SelfResourceReviewPost
   */
  readonly excludeSubscriptionStatuses?: string;

  /**
   * A comma-separated list of subscription statuses. Only subscriptions with these statuses will be included into results. This options is mutually exclusive with excludeSubscriptionStatuses.
   * @type {string}
   * @memberof DefaultApiApiAuthorizationsV1SelfResourceReviewPost
   */
  readonly includeSubscriptionStatuses?: string;
}

/**
 * Request parameters for apiAuthorizationsV1SelfTermsReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1SelfTermsReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1SelfTermsReviewPostRequest {
  /**
   * Data to check self terms for
   * @type {SelfTermsReview}
   * @memberof DefaultApiApiAuthorizationsV1SelfTermsReviewPost
   */
  readonly selfTermsReview: SelfTermsReview;
}

/**
 * Request parameters for apiAuthorizationsV1TermsReviewPost operation in DefaultApi.
 * @export
 * @interface DefaultApiApiAuthorizationsV1TermsReviewPostRequest
 */
export interface DefaultApiApiAuthorizationsV1TermsReviewPostRequest {
  /**
   * Data to check terms for
   * @type {TermsReview}
   * @memberof DefaultApiApiAuthorizationsV1TermsReviewPost
   */
  readonly termsReview: TermsReview;
}

/**
 * DefaultApi - object-oriented interface
 * @export
 * @class DefaultApi
 * @extends {BaseAPI}
 */
export class DefaultApi extends BaseAPI {
  /**
   *
   * @summary Review an account\'s access to perform an action on a particular resource or resource type
   * @param {DefaultApiApiAuthorizationsV1AccessReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1AccessReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1AccessReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1AccessReviewPost(requestParameters.accessReview, options)
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Review an account\'s capabilities
   * @param {DefaultApiApiAuthorizationsV1CapabilityReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1CapabilityReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1CapabilityReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1CapabilityReviewPost(requestParameters.capabilityReviewRequest, options)
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Determine whether a user is restricted from downloading Red Hat software based on export control compliance.
   * @param {DefaultApiApiAuthorizationsV1ExportControlReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1ExportControlReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1ExportControlReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1ExportControlReviewPost(
        requestParameters.exportControlReviewRequest,
        options,
      )
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Review feature to perform an action on it such as toggle a feature on/off
   * @param {DefaultApiApiAuthorizationsV1FeatureReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1FeatureReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1FeatureReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1FeatureReviewPost(requestParameters.featureReview, options)
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Obtain resource ids for resources an account may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
   * @param {DefaultApiApiAuthorizationsV1ResourceReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @deprecated
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1ResourceReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1ResourceReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1ResourceReviewPost(
        requestParameters.resourceReviewRequest,
        requestParameters.reduceClusterList,
        requestParameters.excludeSubscriptionStatuses,
        requestParameters.includeSubscriptionStatuses,
        options,
      )
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Review your ability to perform an action on a particular resource or resource type
   * @param {DefaultApiApiAuthorizationsV1SelfAccessReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1SelfAccessReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1SelfAccessReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1SelfAccessReviewPost(requestParameters.selfAccessReview, options)
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Review your ability to toggle a feature
   * @param {DefaultApiApiAuthorizationsV1SelfFeatureReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1SelfFeatureReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1SelfFeatureReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1SelfFeatureReviewPost(requestParameters.selfFeatureReview, options)
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Obtain resource ids for resources you may perform the specified action upon. Resource ids returned as [\"*\"] is shorthand for all ids.
   * @param {DefaultApiApiAuthorizationsV1SelfResourceReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1SelfResourceReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1SelfResourceReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1SelfResourceReviewPost(
        requestParameters.selfResourceReviewRequest,
        requestParameters.reduceClusterList,
        requestParameters.excludeSubscriptionStatuses,
        requestParameters.includeSubscriptionStatuses,
        options,
      )
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Review your status of Terms
   * @param {DefaultApiApiAuthorizationsV1SelfTermsReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1SelfTermsReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1SelfTermsReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1SelfTermsReviewPost(requestParameters.selfTermsReview, options)
      .then((request) => request(this.axios, this.basePath));
  }

  /**
   *
   * @summary Review an account\'s status of Terms
   * @param {DefaultApiApiAuthorizationsV1TermsReviewPostRequest} requestParameters Request parameters.
   * @param {*} [options] Override http request option.
   * @throws {RequiredError}
   * @memberof DefaultApi
   */
  public apiAuthorizationsV1TermsReviewPost(
    requestParameters: DefaultApiApiAuthorizationsV1TermsReviewPostRequest,
    options?: AxiosRequestConfig,
  ) {
    return DefaultApiFp(this.configuration)
      .apiAuthorizationsV1TermsReviewPost(requestParameters.termsReview, options)
      .then((request) => request(this.axios, this.basePath));
  }
}
