pulumi-stripe
Version:
A Pulumi package for creating and managing Stripe resources.
213 lines (212 loc) • 8.96 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* With this resource, you can create a Customer Portal Configuration - [Stripe API portal configuration documentation](https://stripe.com/docs/api/customer_portal/configuration).
*
* The Billing customer portal is a Stripe-hosted UI for subscription and billing management.
*
* A portal configuration describes the functionality and features that you want to provide to your customers through the portal.
*
* > Removal of the Customer Portal isn't supported through the Stripe SDK. The best practice, which this provider follows,
* is to deactivate the Customer Portal by marking it as inactive on destroy, which indicates that resource is no longer
* available.
*
* ## Example Usage
*
* <!--Start PulumiCodeChooser -->
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as stripe from "pulumi-stripe";
*
* // A billing portal using all the available options
* const portalConfiguration = new stripe.PortalConfiguration("portalConfiguration", {
* businessProfile: {
* headline: "My special headline",
* privacyPolicyUrl: "https://example.com/privacy",
* termsOfServiceUrl: "https://example.com/terms",
* },
* defaultReturnUrl: "https://example.com/special_headline",
* features: {
* customerUpdate: {
* allowedUpdates: [
* "email",
* "address",
* "shipping",
* "phone",
* "tax_id",
* ],
* enabled: true,
* },
* invoiceHistory: {
* enabled: true,
* },
* paymentMethodUpdate: {
* enabled: true,
* },
* subscriptionCancel: {
* cancellationReason: {
* enabled: true,
* options: [
* "too_expensive",
* "missing_features",
* "switched_service",
* "unused",
* "customer_service",
* "too_complex",
* "low_quality",
* "other",
* ],
* },
* enabled: true,
* mode: "at_period_end",
* prorationBehavior: "none",
* },
* subscriptionPauses: [{
* enabled: true,
* }],
* subscriptionUpdates: [{
* defaultAllowedUpdates: [
* "price",
* "quantity",
* "promotion_code",
* ],
* enabled: true,
* products: [{
* prices: [
* "my_price_id1",
* "my_price_id2",
* ],
* product: "my_product_id",
* }],
* prorationBehavior: "none",
* }],
* },
* metadata: {
* foo: "bar",
* },
* });
* ```
* <!--End PulumiCodeChooser -->
*/
export declare class PortalConfiguration extends pulumi.CustomResource {
/**
* Get an existing PortalConfiguration 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 state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: PortalConfigurationState, opts?: pulumi.CustomResourceOptions): PortalConfiguration;
/**
* Returns true if the given object is an instance of PortalConfiguration. 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 PortalConfiguration;
/**
* Bool. Whether the configuration is active and can be used to create portal sessions. (On create it is always set as `true`)
*/
readonly active: pulumi.Output<boolean | undefined>;
/**
* List(Resource). The business information shown to customers in the portal. More details in Business Profile section
*/
readonly businessProfile: pulumi.Output<outputs.PortalConfigurationBusinessProfile>;
/**
* String. The default URL to redirect customers to when they click on the portal’s link to return to your website. This can be overriden when creating the session.
*/
readonly defaultReturnUrl: pulumi.Output<string | undefined>;
/**
* List(Resource). Information about the features available in the portal. Feature section described in Feature section
*/
readonly features: pulumi.Output<outputs.PortalConfigurationFeatures>;
/**
* Bool. Whether the configuration is the default.
*/
readonly isDefault: pulumi.Output<boolean>;
/**
* List(Resource). The hosted login page for this configuration. See details in Login Page Section.
*/
readonly loginPage: pulumi.Output<outputs.PortalConfigurationLoginPage>;
/**
* Map(String). Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
*/
readonly metadata: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Create a PortalConfiguration 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: PortalConfigurationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering PortalConfiguration resources.
*/
export interface PortalConfigurationState {
/**
* Bool. Whether the configuration is active and can be used to create portal sessions. (On create it is always set as `true`)
*/
active?: pulumi.Input<boolean>;
/**
* List(Resource). The business information shown to customers in the portal. More details in Business Profile section
*/
businessProfile?: pulumi.Input<inputs.PortalConfigurationBusinessProfile>;
/**
* String. The default URL to redirect customers to when they click on the portal’s link to return to your website. This can be overriden when creating the session.
*/
defaultReturnUrl?: pulumi.Input<string>;
/**
* List(Resource). Information about the features available in the portal. Feature section described in Feature section
*/
features?: pulumi.Input<inputs.PortalConfigurationFeatures>;
/**
* Bool. Whether the configuration is the default.
*/
isDefault?: pulumi.Input<boolean>;
/**
* List(Resource). The hosted login page for this configuration. See details in Login Page Section.
*/
loginPage?: pulumi.Input<inputs.PortalConfigurationLoginPage>;
/**
* Map(String). Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
*/
metadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
}
/**
* The set of arguments for constructing a PortalConfiguration resource.
*/
export interface PortalConfigurationArgs {
/**
* Bool. Whether the configuration is active and can be used to create portal sessions. (On create it is always set as `true`)
*/
active?: pulumi.Input<boolean>;
/**
* List(Resource). The business information shown to customers in the portal. More details in Business Profile section
*/
businessProfile: pulumi.Input<inputs.PortalConfigurationBusinessProfile>;
/**
* String. The default URL to redirect customers to when they click on the portal’s link to return to your website. This can be overriden when creating the session.
*/
defaultReturnUrl?: pulumi.Input<string>;
/**
* List(Resource). Information about the features available in the portal. Feature section described in Feature section
*/
features: pulumi.Input<inputs.PortalConfigurationFeatures>;
/**
* List(Resource). The hosted login page for this configuration. See details in Login Page Section.
*/
loginPage?: pulumi.Input<inputs.PortalConfigurationLoginPage>;
/**
* Map(String). Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
*/
metadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
}