/* tslint:disable */
/* eslint-disable */
/**
 * Account Management Service API
 * Manage user subscriptions and clusters
 *
 * 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.
 */

// May contain unused imports in some cases
// @ts-ignore
import { ReservedResource } from './reserved-resource';

/**
 *
 * @export
 * @interface ClusterAuthorizationRequest
 */
export interface ClusterAuthorizationRequest {
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  account_username: string;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  cluster_id: string;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  availability_zone?: string;
  /**
   *
   * @type {boolean}
   * @memberof ClusterAuthorizationRequest
   */
  byoc?: boolean;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  cloud_account_id?: string;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  cloud_provider_id?: string;
  /**
   *
   * @type {boolean}
   * @memberof ClusterAuthorizationRequest
   */
  disconnected?: boolean;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  display_name?: string;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  external_cluster_id?: string;
  /**
   *
   * @type {boolean}
   * @memberof ClusterAuthorizationRequest
   */
  managed?: boolean;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  product_category?: ClusterAuthorizationRequestProductCategoryEnum;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  product_id?: ClusterAuthorizationRequestProductIdEnum;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  quota_version?: string;
  /**
   *
   * @type {boolean}
   * @memberof ClusterAuthorizationRequest
   */
  reserve?: boolean;
  /**
   *
   * @type {Array<ReservedResource>}
   * @memberof ClusterAuthorizationRequest
   */
  resources?: Array<ReservedResource>;
  /**
   *
   * @type {string}
   * @memberof ClusterAuthorizationRequest
   */
  xcm_id?: string;
}

/**
 * @export
 * @enum {string}
 */
export enum ClusterAuthorizationRequestProductCategoryEnum {
  AssistedInstall = 'assistedInstall',
  HostedControlPlane = 'HostedControlPlane',
}
/**
 * @export
 * @enum {string}
 */
export enum ClusterAuthorizationRequestProductIdEnum {
  Ocp = 'OCP',
  Osd = 'OSD',
  OsdTrial = 'OSDTrial',
  Moa = 'MOA',
  Rhmi = 'RHMI',
  Rhosak = 'RHOSAK',
  RhosakTrial = 'RHOSAKTrial',
  Rhosr = 'RHOSR',
  RhosrTrial = 'RHOSRTrial',
  Rhose = 'RHOSE',
  RhoseTrial = 'RHOSETrial',
  Rhacs = 'RHACS',
  RhacsTrial = 'RHACSTrial',
  Aro = 'ARO',
}
