MCPcopy Create free account
hub / github.com/aws/amazon-q-developer-cli / get_subscription_status

Function get_subscription_status

crates/chat-cli/src/cli/chat/mod.rs:3887–3909  ·  view source on GitHub ↗

NOTE: The subscription API behaves in a non-intuitive way. We expect the following responses: 1. SubscriptionStatus::Active: - The user *has* a subscription, but it is set to *not auto-renew* (i.e., cancelled). - We return ActualSubscriptionStatus::Expiring to indicate they are eligible to re-subscribe 2. SubscriptionStatus::Inactive: - The user has no subscription at all (no Pro access). - We r

(os: &mut Os)

Source from the content-addressed store, hash-verified

3885//
3886// Also, it is currently not possible to subscribe or re-subscribe via console, only IDE/CLI.
3887async fn get_subscription_status(os: &mut Os) -> Result<ActualSubscriptionStatus> {
3888 if is_idc_user(&os.database).await? {
3889 return Ok(ActualSubscriptionStatus::Active);
3890 }
3891
3892 match os.client.create_subscription_token().await {
3893 Ok(response) => match response.status() {
3894 SubscriptionStatus::Active => Ok(ActualSubscriptionStatus::Expiring),
3895 SubscriptionStatus::Inactive => Ok(ActualSubscriptionStatus::None),
3896 _ => Ok(ActualSubscriptionStatus::None),
3897 },
3898 Err(ApiClientError::CreateSubscriptionToken(e)) => {
3899 let sdk_error_code = e.as_service_error().and_then(|err| err.meta().code());
3900
3901 if sdk_error_code.is_some_and(|c| c.contains("ConflictException")) {
3902 Ok(ActualSubscriptionStatus::Active)
3903 } else {
3904 Err(e.into())
3905 }
3906 },
3907 Err(e) => Err(e.into()),
3908 }
3909}
3910
3911async fn get_subscription_status_with_spinner(
3912 os: &mut Os,

Callers 2

nextMethod · 0.85

Calls 5

is_idc_userFunction · 0.85
statusMethod · 0.45
codeMethod · 0.45
metaMethod · 0.45

Tested by

no test coverage detected