import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../../types/input"; import * as outputs from "../../types/output"; import * as enums from "../../types/enums"; /** * Create a rate plan that is associated with an API product in an organization. Using rate plans, API product owners can monetize their API products by configuring one or more of the following: - Billing frequency - Initial setup fees for using an API product - Payment funding model (postpaid only) - Fixed recurring or consumption-based charges for using an API product - Revenue sharing with developer partners An API product can have multiple rate plans associated with it but *only one* rate plan can be active at any point of time. **Note: From the developer's perspective, they purchase API products not rate plans. * Auto-naming is currently not supported for this resource. */ export declare class RatePlan extends pulumi.CustomResource { /** * Get an existing RatePlan resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): RatePlan; /** * Returns true if the given object is an instance of RatePlan. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is RatePlan; /** * Name of the API product that the rate plan is associated with. */ readonly apiproduct: pulumi.Output; readonly apiproductId: pulumi.Output; /** * Frequency at which the customer will be billed. */ readonly billingPeriod: pulumi.Output; /** * API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { "start": 1, "end": 100, "fee": 75 }, { "start": 101, "end": 200, "fee": 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200. */ readonly consumptionPricingRates: pulumi.Output; /** * Pricing model used for consumption-based charges. */ readonly consumptionPricingType: pulumi.Output; /** * Time that the rate plan was created in milliseconds since epoch. */ readonly createdAt: pulumi.Output; /** * Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard. */ readonly currencyCode: pulumi.Output; /** * Description of the rate plan. */ readonly description: pulumi.Output; /** * Display name of the rate plan. */ readonly displayName: pulumi.Output; /** * Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire. */ readonly endTime: pulumi.Output; /** * Frequency at which the fixed fee is charged. */ readonly fixedFeeFrequency: pulumi.Output; /** * Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period. */ readonly fixedRecurringFee: pulumi.Output; /** * Time the rate plan was last modified in milliseconds since epoch. */ readonly lastModifiedAt: pulumi.Output; /** * Name of the rate plan. */ readonly name: pulumi.Output; readonly organizationId: pulumi.Output; /** * DEPRECATED: This field is no longer supported and will eventually be removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the `billingType` field inside `DeveloperMonetizationConfig` resource. Flag that specifies the billing account type, prepaid or postpaid. * * @deprecated DEPRECATED: This field is no longer supported and will eventually be removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the `billingType` field inside `DeveloperMonetizationConfig` resource. Flag that specifies the billing account type, prepaid or postpaid. */ readonly paymentFundingModel: pulumi.Output; /** * Details of the revenue sharing model. */ readonly revenueShareRates: pulumi.Output; /** * Method used to calculate the revenue that is shared with developers. */ readonly revenueShareType: pulumi.Output; /** * Initial, one-time fee paid when purchasing the API product. */ readonly setupFee: pulumi.Output; /** * Time when the rate plan becomes active in milliseconds since epoch. */ readonly startTime: pulumi.Output; /** * Current state of the rate plan (draft or published). */ readonly state: pulumi.Output; /** * Create a RatePlan resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: RatePlanArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a RatePlan resource. */ export interface RatePlanArgs { /** * Name of the API product that the rate plan is associated with. */ apiproduct?: pulumi.Input; apiproductId: pulumi.Input; /** * Frequency at which the customer will be billed. */ billingPeriod?: pulumi.Input; /** * API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { "start": 1, "end": 100, "fee": 75 }, { "start": 101, "end": 200, "fee": 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200. */ consumptionPricingRates?: pulumi.Input[]>; /** * Pricing model used for consumption-based charges. */ consumptionPricingType?: pulumi.Input; /** * Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard. */ currencyCode?: pulumi.Input; /** * Description of the rate plan. */ description?: pulumi.Input; /** * Display name of the rate plan. */ displayName?: pulumi.Input; /** * Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire. */ endTime?: pulumi.Input; /** * Frequency at which the fixed fee is charged. */ fixedFeeFrequency?: pulumi.Input; /** * Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period. */ fixedRecurringFee?: pulumi.Input; organizationId: pulumi.Input; /** * DEPRECATED: This field is no longer supported and will eventually be removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the `billingType` field inside `DeveloperMonetizationConfig` resource. Flag that specifies the billing account type, prepaid or postpaid. * * @deprecated DEPRECATED: This field is no longer supported and will eventually be removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the `billingType` field inside `DeveloperMonetizationConfig` resource. Flag that specifies the billing account type, prepaid or postpaid. */ paymentFundingModel?: pulumi.Input; /** * Details of the revenue sharing model. */ revenueShareRates?: pulumi.Input[]>; /** * Method used to calculate the revenue that is shared with developers. */ revenueShareType?: pulumi.Input; /** * Initial, one-time fee paid when purchasing the API product. */ setupFee?: pulumi.Input; /** * Time when the rate plan becomes active in milliseconds since epoch. */ startTime?: pulumi.Input; /** * Current state of the rate plan (draft or published). */ state?: pulumi.Input; }