/* tslint:disable */
/* eslint-disable */
/**
 * Admin API
 * The Admin API is used to manage the ApeCloud platform. 
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: support@apecloud.com
 *
 * 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 type { ModeServiceRefHelmValuePath } from './mode-service-ref-helm-value-path';
// May contain unused imports in some cases
// @ts-ignore
import type { ServiceDescriptorAddressStyle } from './service-descriptor-address-style';
// May contain unused imports in some cases
// @ts-ignore
import type { ServiceSelector } from './service-selector';

/**
 * Defines a ServiceRef for a cluster, enabling access to both external services and Services provided by other Clusters. The defined serviceRef must be provided when creating cluster. 
 * @export
 * @interface ModeServiceRef
 */
export interface ModeServiceRef {
    /**
     * The name will be referenced in clusterCreate request. The name should also be defined in `.components` so that frontend can use it to get proper localized title. 
     * @type {string}
     * @memberof ModeServiceRef
     */
    'name': string;
    /**
     * The engine to be used in serviceRef. This field is used to filter clusters.
     * @type {string}
     * @memberof ModeServiceRef
     */
    'engineName': string;
    /**
     * The mode to be used in serviceRef. This field is used to filter clusters. If not set, it means all modes are supported.
     * @type {Array<string>}
     * @memberof ModeServiceRef
     */
    'modes'?: Array<string>;
    /**
     * 
     * @type {ServiceDescriptorAddressStyle}
     * @memberof ModeServiceRef
     */
    'addressStyle': ServiceDescriptorAddressStyle;
    /**
     * whether to disable manual input of the service reference. If set to true, users can only select from the serviceRefs provided by list clusters api.
     * @type {boolean}
     * @memberof ModeServiceRef
     */
    'disableManualInput'?: boolean;
    /**
     * 
     * @type {ModeServiceRefHelmValuePath}
     * @memberof ModeServiceRef
     */
    'helmValuePath': ModeServiceRefHelmValuePath;
    /**
     * ServiceSelectors will map cluster\'s mode to a serviceSelector. The serviceSelector will be used to provide the corresponding helm values. If no serviceSelector is matched, the corresponding helm value will not be set. 
     * @type {Array<ServiceSelector>}
     * @memberof ModeServiceRef
     */
    'serviceSelectors'?: Array<ServiceSelector>;
}



