/**
 * Octane API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { CreditPlanInputArgs } from './CreditPlanInputArgs';
import { DiscountInputArgs } from './DiscountInputArgs';
import { FeatureInputArgs } from './FeatureInputArgs';
import { LimitInputArgs } from './LimitInputArgs';
import { SubscriptionAddOnInput } from './SubscriptionAddOnInput';
import { TrialInputArgs } from './TrialInputArgs';
/**
 *
 * @export
 * @interface CreateSubscriptionArgs
 */
export interface CreateSubscriptionArgs {
    /**
     * DEPRECATED - use discounts field
     * @type {DiscountInputArgs}
     * @memberof CreateSubscriptionArgs
     */
    discountOverride?: DiscountInputArgs | null;
    /**
     *
     * @type {Date}
     * @memberof CreateSubscriptionArgs
     */
    effectiveAt?: Date;
    /**
     *
     * @type {TrialInputArgs}
     * @memberof CreateSubscriptionArgs
     */
    trialOverride?: TrialInputArgs;
    /**
     * The name of the price plan to subscribe customer to. Either provide price plan UUID or name/tag but not both.
     * @type {string}
     * @memberof CreateSubscriptionArgs
     */
    pricePlanName?: string;
    /**
     * The tag of the specific price plan version for the given price_plan_name. Should only be set if identifying price plan by name.
     * @type {string}
     * @memberof CreateSubscriptionArgs
     */
    pricePlanTag?: string;
    /**
     *
     * @type {Array<LimitInputArgs>}
     * @memberof CreateSubscriptionArgs
     */
    limitsOverride?: Array<LimitInputArgs>;
    /**
     * Whether to align this subscripton's billing cycles to calendar boundaries (e.g., begining of every month). If the subscripiton is effective as of the middle of the month, the first cycle will be prorated appropriately.
     * @type {boolean}
     * @memberof CreateSubscriptionArgs
     */
    alignToCalendar?: boolean;
    /**
     *
     * @type {Array<DiscountInputArgs>}
     * @memberof CreateSubscriptionArgs
     */
    discounts?: Array<DiscountInputArgs>;
    /**
     *
     * @type {string}
     * @memberof CreateSubscriptionArgs
     */
    couponOverrideName?: string;
    /**
     *
     * @type {Array<SubscriptionAddOnInput>}
     * @memberof CreateSubscriptionArgs
     */
    addOns?: Array<SubscriptionAddOnInput>;
    /**
     * The UUID of the specific price plan version to subscribe customer to. Either provide price plan UUID or name/tag but not both.
     * @type {string}
     * @memberof CreateSubscriptionArgs
     */
    pricePlanUuid?: string;
    /**
     * Credit plan associated with this subscription.
     * @type {CreditPlanInputArgs}
     * @memberof CreateSubscriptionArgs
     */
    creditPlan?: CreditPlanInputArgs | null;
    /**
     *
     * @type {Array<FeatureInputArgs>}
     * @memberof CreateSubscriptionArgs
     */
    featuresOverride?: Array<FeatureInputArgs>;
}
export declare function CreateSubscriptionArgsFromJSON(json: any): CreateSubscriptionArgs;
export declare function CreateSubscriptionArgsFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateSubscriptionArgs;
export declare function CreateSubscriptionArgsToJSON(value?: CreateSubscriptionArgs | null): any;
