/**
 * 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 UpdateSubscriptionArgs
 */
export interface UpdateSubscriptionArgs {
    /**
     * DEPRECATED - use discounts field
     * @type {DiscountInputArgs}
     * @memberof UpdateSubscriptionArgs
     */
    discountOverride?: DiscountInputArgs | null;
    /**
     * Boolean that indicates whether to update the subscription at the end of the billing cycle. If 'true' and either of `effective_at` or `at_cycle_start` are set, will return an error.
     * @type {boolean}
     * @memberof UpdateSubscriptionArgs
     */
    atCycleEnd?: boolean;
    /**
     *
     * @type {Date}
     * @memberof UpdateSubscriptionArgs
     */
    effectiveAt?: Date;
    /**
     *
     * @type {TrialInputArgs}
     * @memberof UpdateSubscriptionArgs
     */
    trialOverride?: TrialInputArgs | null;
    /**
     * The name of the price plan to subscribe customer to. Either provide price plan UUID or name/tag but not both.
     * @type {string}
     * @memberof UpdateSubscriptionArgs
     */
    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 UpdateSubscriptionArgs
     */
    pricePlanTag?: string;
    /**
     *
     * @type {Array<LimitInputArgs>}
     * @memberof UpdateSubscriptionArgs
     */
    limitsOverride?: Array<LimitInputArgs> | null;
    /**
     * 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 UpdateSubscriptionArgs
     */
    alignToCalendar?: boolean;
    /**
     *
     * @type {Array<DiscountInputArgs>}
     * @memberof UpdateSubscriptionArgs
     */
    discounts?: Array<DiscountInputArgs>;
    /**
     *
     * @type {string}
     * @memberof UpdateSubscriptionArgs
     */
    couponOverrideName?: string;
    /**
     *
     * @type {Array<SubscriptionAddOnInput>}
     * @memberof UpdateSubscriptionArgs
     */
    addOns?: Array<SubscriptionAddOnInput> | null;
    /**
     * 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 UpdateSubscriptionArgs
     */
    pricePlanUuid?: string;
    /**
     * Credit plan associated with this subscription.
     * @type {CreditPlanInputArgs}
     * @memberof UpdateSubscriptionArgs
     */
    creditPlan?: CreditPlanInputArgs | null;
    /**
     *
     * @type {Array<FeatureInputArgs>}
     * @memberof UpdateSubscriptionArgs
     */
    featuresOverride?: Array<FeatureInputArgs> | null;
    /**
     * Boolean that indicates whether to update the subscription at the start of the billing cycle. If 'true' and either of `effective_at` or `at_cycle_end` are set, will return an error.
     * @type {boolean}
     * @memberof UpdateSubscriptionArgs
     */
    atCycleStart?: boolean;
}
export declare function UpdateSubscriptionArgsFromJSON(json: any): UpdateSubscriptionArgs;
export declare function UpdateSubscriptionArgsFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateSubscriptionArgs;
export declare function UpdateSubscriptionArgsToJSON(value?: UpdateSubscriptionArgs | null): any;
