Files
iris-context/commands/ops/stripe.go
VERSE ebde9ba68f refactor(commands): separate commands and its core into two folders (#32)
- I think it would be better if one for commands only, one for the spec
handling core logic so people won't be confused by the core logic inside
the commands folder (cleaner I guess)
- Regen docs
2026-07-05 11:27:30 +07:00

103 lines
7.5 KiB
Go

package ops
import (
"github.com/versenilvis/iris/spec"
)
func init() {
spec.Register(&spec.Spec{
Name: "stripe",
Description: "Stripe CLI - build, test, and manage your Stripe integrations right from your terminal",
Subcommands: []spec.Subcommand{
{Name: "login", Description: "Connects to your Stripe account"},
{Name: "logout", Description: "Disconnects your Stripe account"},
{Name: "config", Description: "Manage Stripe CLI configuration", Subcommands: []spec.Subcommand{
{Name: "list", Description: "List all configured options"},
{Name: "set", Description: "Set a value for the specified configuration option"},
{Name: "unset", Description: "Remove a key-value pair from the config file"},
}},
{Name: "completion", Description: "Generates shell autocompletions"},
{Name: "status", Description: "Displays Stripe's system status and service availability"},
{Name: "open", Description: "Opens Stripe dashboard pages in your web browser", Subcommands: []spec.Subcommand{
{Name: "login", Description: "Open the login page"},
{Name: "dashboard", Description: "Open the dashboard"},
{Name: "api", Description: "Open API reference docs"},
{Name: "webhooks", Description: "Open webhooks dashboard"},
{Name: "logs", Description: "Open logs dashboard"},
{Name: "settings", Description: "Open account settings"},
}},
{Name: "listen", Description: "Receives webhook events from Stripe locally"},
{Name: "trigger", Description: "Trigger webhook events", Subcommands: []spec.Subcommand{
{Name: "account.updated", Description: "Occurs whenever an account status or property has changed"},
{Name: "account.external_account.created", Description: "Occurs whenever an external account is created"},
{Name: "account.external_account.deleted", Description: "Occurs whenever an external account is deleted"},
{Name: "account.external_account.updated", Description: "Occurs whenever an external account is updated"},
{Name: "application_fee.created", Description: "Occurs whenever an application fee is created on a charge"},
{Name: "application_fee.refund.updated", Description: "Occurs whenever an application fee refund is updated"},
{Name: "billing_portal.configuration.created", Description: "Occurs whenever a portal configuration is created"},
{Name: "billing_portal.configuration.updated", Description: "Occurs whenever a portal configuration is updated"},
{Name: "capability.updated", Description: "Occurs whenever a capability has new requirements or a new status"},
{Name: "charge.expired", Description: "Occurs whenever an uncaptured charge expires"},
{Name: "charge.pending", Description: "Occurs whenever a pending charge is created"},
{Name: "charge.updated", Description: "Occurs whenever a charge description or metadata is updated"},
{Name: "charge.dispute.funds_withdrawn", Description: "Occurs when funds are removed from your account due to a dispute"},
{Name: "charge.dispute.updated", Description: "Occurs when the dispute is updated (usually with evidence)"},
{Name: "charge.refund.updated", Description: "Occurs whenever a refund is updated, on selected payment methods"},
{Name: "checkout.session.async_payment_failed", Description: "Occurs when a payment intent using a delayed payment method fails"},
{Name: "coupon.created", Description: "Occurs whenever a coupon is created"},
{Name: "coupon.deleted", Description: "Occurs whenever a coupon is deleted"},
{Name: "coupon.updated", Description: "Occurs whenever a coupon is updated"},
{Name: "credit_note.created", Description: "Occurs whenever a credit note is created"},
{Name: "credit_note.updated", Description: "Occurs whenever a credit note is updated"},
{Name: "credit_note.voided", Description: "Occurs whenever a credit note is voided"},
{Name: "customer.discount.created", Description: "Occurs whenever a coupon is attached to a customer"},
{Name: "customer.discount.deleted", Description: "Occurs whenever a coupon is removed from a customer"},
}},
{Name: "logs", Description: "Interact with Stripe request logs", Subcommands: []spec.Subcommand{
{Name: "tail", Description: "Stream request logs from Stripe"},
}},
{Name: "get", Description: "Make a GET request to the Stripe API"},
{Name: "post", Description: "Make a POST request to the Stripe API"},
{Name: "delete", Description: "Make a DELETE request to the Stripe API"},
},
Options: []spec.Option{
{Name: "--api-key", Description: "Sets your API key to use for the command"},
{Name: "--color", Description: "Enables or disables color output"},
{Name: "--config", Description: "Sets your config file"},
{Name: "--device-name", Description: "Runs command on behalf of another device"},
{Name: "-h", Description: "Provides the help documentation for commands, flags, and arguments"},
{Name: "--log-level", Description: "Set the level of detail for log messages"},
{Name: "-v", Description: "Prints the version of the Stripe CLI"},
{Name: "-s", Description: "Shows response HTTP headers"},
{Name: "-c", Description: "Skips the warning prompt and automatically confirms the command being entered"},
{Name: "--dark-style", Description: "Uses a darker color scheme"},
{Name: "-d", Description: "Additional data to send with an API request"},
{Name: "-e", Description: "Response attributes to expand inline"},
{Name: "-i", Description: "Makes a live request"},
{Name: "--stripe-account", Description: "Specify the Stripe account to use for this request"},
{Name: "--filter-account", Description: "Filters request logs by the source and destination account"},
{Name: "--filter-http-method", Description: "Filters request logs by HTTP method"},
{Name: "--filter-ip-address", Description: "Filters request logs by IP address"},
{Name: "--filter-request-path", Description: "Filters request logs that directly match any Stripe path"},
{Name: "--filter-request-status", Description: "Filters request logs by the response status"},
{Name: "--filter-source", Description: "Filters request logs by the source of each request"},
{Name: "--filter-status-code", Description: "Filters request logs by HTTP status code"},
{Name: "--filter-status-code-type", Description: "Filters request logs by the type of HTTP status code"},
{Name: "--format", Description: "Specify the output format for request logs"},
{Name: "--hide-spinner", Description: "Hides the loading spinner when polling"},
{Name: "--poll", Description: "Keeps polling for status updates"},
{Name: "--poll-rate", Description: "The number of seconds (min 5) to wait between status updates"},
{Name: "--verbose", Description: "Shows the status of all Stripe systems"},
{Name: "--live", Description: "Opens the Dashboard for your live integrations"},
{Name: "--connect-headers", Description: "A comma-separated list of custom HTTP headers to any connected accounts"},
{Name: "-f", Description: "The URL that webhook events will be forwarded to"},
{Name: "-H", Description: "A comma-separated list of custom HTTP headers to forward"},
{Name: "-l", Description: "Receive events used in the latest API version"},
{Name: "-a", Description: "Listen for all webhook events based on existing webhook endpoints"},
{Name: "-j", Description: "Print JSON objects to stdout"},
{Name: "--skip-verify", Description: "Skip certificate verification when forwarding to HTTPS endpoints"},
{Name: "--account", Description: "Resend the event to the given Stripe account"},
},
})
}