/**
 * 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 * as runtime from '../runtime';
import { AddAddOnsToPricePlanInput, AddFeaturesToPricePlanInput, AddMeteredComponentsToPricePlanInput, CreatePricePlanArgs, ListPricePlans, MeteredComponent, PricePlan, RemoveFeaturesFromPricePlanInput, SelfServePricePlansInputArgs, UpdateMeteredComponentLimitsInput, UpdatePricePlanArgs, UpdatePricePlanInPlaceArgs } from '../models';
export interface PricePlansMeteredComponentsUuidUpdateLimitsPostRequest {
    uuid: string;
    updateMeteredComponentLimitsInput: UpdateMeteredComponentLimitsInput;
}
export interface PricePlansPaginateGetRequest {
    names?: Array<string>;
    sortDirection?: string;
    tags?: Array<string>;
    forwardSecondarySortOffset?: string;
    limit?: number;
    forwardSortOffset?: string;
    sortColumn?: string;
}
export interface PricePlansPostRequest {
    createPricePlanArgs: CreatePricePlanArgs;
}
export interface PricePlansPricePlanNameArchivePostRequest {
    pricePlanName: string;
}
export interface PricePlansPricePlanNameDeleteRequest {
    pricePlanName: string;
}
export interface PricePlansPricePlanNameGetRequest {
    pricePlanName: string;
}
export interface PricePlansPricePlanNamePutRequest {
    pricePlanName: string;
    updatePricePlanArgs: UpdatePricePlanArgs;
}
export interface PricePlansPricePlanNameTagGetRequest {
    pricePlanName: string;
    tag: string;
}
export interface PricePlansSelfServePostRequest {
    selfServePricePlansInputArgs: SelfServePricePlansInputArgs;
}
export interface PricePlansUpdateInPlacePricePlanNamePostRequest {
    pricePlanName: string;
    updatePricePlanInPlaceArgs: UpdatePricePlanInPlaceArgs;
}
export interface PricePlansUpdateInPlacePricePlanNameTagPostRequest {
    pricePlanName: string;
    tag: string;
    updatePricePlanInPlaceArgs: UpdatePricePlanInPlaceArgs;
}
export interface PricePlansUuidAddAddOnsPostRequest {
    uuid: string;
    addAddOnsToPricePlanInput: AddAddOnsToPricePlanInput;
}
export interface PricePlansUuidAddFeaturesPostRequest {
    uuid: string;
    addFeaturesToPricePlanInput: AddFeaturesToPricePlanInput;
}
export interface PricePlansUuidAddMeteredComponentsPostRequest {
    uuid: string;
    addMeteredComponentsToPricePlanInput: AddMeteredComponentsToPricePlanInput;
}
export interface PricePlansUuidRemoveFeaturesPostRequest {
    uuid: string;
    removeFeaturesFromPricePlanInput: RemoveFeaturesFromPricePlanInput;
}
/**
 *
 */
export declare class PricePlansApi extends runtime.BaseAPI {
    /**
     * Get all price plans associated with a vendor.
     * Get All Price Plans
     */
    pricePlansGetRaw(initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<PricePlan>>>;
    /**
     * Get all price plans associated with a vendor.
     * Get All Price Plans
     */
    pricePlansGet(initOverrides?: RequestInit): Promise<Array<PricePlan>>;
    /**
     * Update metered component usage limits in place
     * Update Metered Component Limits
     */
    pricePlansMeteredComponentsUuidUpdateLimitsPostRaw(requestParameters: PricePlansMeteredComponentsUuidUpdateLimitsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<MeteredComponent>>;
    /**
     * Update metered component usage limits in place
     * Update Metered Component Limits
     */
    pricePlansMeteredComponentsUuidUpdateLimitsPost(requestParameters: PricePlansMeteredComponentsUuidUpdateLimitsPostRequest, initOverrides?: RequestInit): Promise<MeteredComponent>;
    /**
     * List all price plans with pagination.
     * Get Paginated Price Plans
     */
    pricePlansPaginateGetRaw(requestParameters: PricePlansPaginateGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ListPricePlans>>;
    /**
     * List all price plans with pagination.
     * Get Paginated Price Plans
     */
    pricePlansPaginateGet(requestParameters?: PricePlansPaginateGetRequest, initOverrides?: RequestInit): Promise<ListPricePlans>;
    /**
     * Create a price plan for a vendor.
     * Create Price Plan
     */
    pricePlansPostRaw(requestParameters: PricePlansPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Create a price plan for a vendor.
     * Create Price Plan
     */
    pricePlansPost(requestParameters: PricePlansPostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Archive a price plan that has no active/scheduled subscription.
     * Archive Price Plan
     */
    pricePlansPricePlanNameArchivePostRaw(requestParameters: PricePlansPricePlanNameArchivePostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Archive a price plan that has no active/scheduled subscription.
     * Archive Price Plan
     */
    pricePlansPricePlanNameArchivePost(requestParameters: PricePlansPricePlanNameArchivePostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Delete an existing Price Plan. Price Plans which map to active Subscriptions must be replaced or removed before deletion can occur.
     * Delete Price Plan
     */
    pricePlansPricePlanNameDeleteRaw(requestParameters: PricePlansPricePlanNameDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete an existing Price Plan. Price Plans which map to active Subscriptions must be replaced or removed before deletion can occur.
     * Delete Price Plan
     */
    pricePlansPricePlanNameDelete(requestParameters: PricePlansPricePlanNameDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Fetch an existing price plan.
     * Get a Price Plan
     */
    pricePlansPricePlanNameGetRaw(requestParameters: PricePlansPricePlanNameGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Fetch an existing price plan.
     * Get a Price Plan
     */
    pricePlansPricePlanNameGet(requestParameters: PricePlansPricePlanNameGetRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Update an existing price plan.
     * Update a Price Plan
     */
    pricePlansPricePlanNamePutRaw(requestParameters: PricePlansPricePlanNamePutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Update an existing price plan.
     * Update a Price Plan
     */
    pricePlansPricePlanNamePut(requestParameters: PricePlansPricePlanNamePutRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Get an existing price plan.
     * Get a Price Plan
     */
    pricePlansPricePlanNameTagGetRaw(requestParameters: PricePlansPricePlanNameTagGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Get an existing price plan.
     * Get a Price Plan
     */
    pricePlansPricePlanNameTagGet(requestParameters: PricePlansPricePlanNameTagGetRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Get all price plans marked for self serve for this vendor.
     * Get All Self Serve Price Plans
     */
    pricePlansSelfServeGetRaw(initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<PricePlan>>>;
    /**
     * Get all price plans marked for self serve for this vendor.
     * Get All Self Serve Price Plans
     */
    pricePlansSelfServeGet(initOverrides?: RequestInit): Promise<Array<PricePlan>>;
    /**
     * Set the exhaustive list of price plans that the customer can see and select via self serve.
     * Set Self Serve Price Plans
     */
    pricePlansSelfServePostRaw(requestParameters: PricePlansSelfServePostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Set the exhaustive list of price plans that the customer can see and select via self serve.
     * Set Self Serve Price Plans
     */
    pricePlansSelfServePost(requestParameters: PricePlansSelfServePostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Edit a price plan without creating a new version.
     * Update Price Plan In Place
     */
    pricePlansUpdateInPlacePricePlanNamePostRaw(requestParameters: PricePlansUpdateInPlacePricePlanNamePostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Edit a price plan without creating a new version.
     * Update Price Plan In Place
     */
    pricePlansUpdateInPlacePricePlanNamePost(requestParameters: PricePlansUpdateInPlacePricePlanNamePostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Edit a price plan without creating a new version.
     * Update Price Plan In Place
     */
    pricePlansUpdateInPlacePricePlanNameTagPostRaw(requestParameters: PricePlansUpdateInPlacePricePlanNameTagPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Edit a price plan without creating a new version.
     * Update Price Plan In Place
     */
    pricePlansUpdateInPlacePricePlanNameTagPost(requestParameters: PricePlansUpdateInPlacePricePlanNameTagPostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Add add ons to price plan in place
     * Add AddOns
     */
    pricePlansUuidAddAddOnsPostRaw(requestParameters: PricePlansUuidAddAddOnsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Add add ons to price plan in place
     * Add AddOns
     */
    pricePlansUuidAddAddOnsPost(requestParameters: PricePlansUuidAddAddOnsPostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Add features and(or) limits to a price plan in place
     * Add features and limits
     */
    pricePlansUuidAddFeaturesPostRaw(requestParameters: PricePlansUuidAddFeaturesPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Add features and(or) limits to a price plan in place
     * Add features and limits
     */
    pricePlansUuidAddFeaturesPost(requestParameters: PricePlansUuidAddFeaturesPostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Add metered components to price plan in place
     * Add Metered Components
     */
    pricePlansUuidAddMeteredComponentsPostRaw(requestParameters: PricePlansUuidAddMeteredComponentsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Add metered components to price plan in place
     * Add Metered Components
     */
    pricePlansUuidAddMeteredComponentsPost(requestParameters: PricePlansUuidAddMeteredComponentsPostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
    /**
     * Remove features and(or) limits from a price plan in place
     * Remove features and limits
     */
    pricePlansUuidRemoveFeaturesPostRaw(requestParameters: PricePlansUuidRemoveFeaturesPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PricePlan>>;
    /**
     * Remove features and(or) limits from a price plan in place
     * Remove features and limits
     */
    pricePlansUuidRemoveFeaturesPost(requestParameters: PricePlansUuidRemoveFeaturesPostRequest, initOverrides?: RequestInit): Promise<PricePlan>;
}
