{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/register":{"post":{"summary":"Register","operationId":"register_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/google":{"get":{"summary":"Google Oauth","operationId":"google_oauth_auth_google_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/google/callback":{"get":{"summary":"Google Callback","operationId":"google_callback_auth_google_callback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tenants/create":{"post":{"summary":"Create Tenant From Data Plane","operationId":"create_tenant_from_data_plane_tenants_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantInfo"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenants/delete":{"delete":{"summary":"Delete Tenant From Data Plane","operationId":"delete_tenant_from_data_plane_tenants_delete_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDeleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/register-tenant-users":{"post":{"summary":"Register Tenant Users","operationId":"register_tenant_users_register_tenant_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSeatUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSeatUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/tenant-stripe-information":{"get":{"summary":"Get Tenant Customer Id","operationId":"get_tenant_customer_id_tenant_stripe_information_get","parameters":[{"name":"tenant_id","in":"query","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicStripeInformationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attach-subscription":{"post":{"summary":"Attach Subscription","operationId":"attach_subscription_attach_subscription_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/create-subscription":{"post":{"summary":"Create Subscription Endpoint","operationId":"create_subscription_endpoint_create_subscription_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update-subscription":{"post":{"summary":"Upsert Subscription Endpoint","operationId":"upsert_subscription_endpoint_update_subscription_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/delete-subscription":{"post":{"summary":"Delete Subscription Endpoint","operationId":"delete_subscription_endpoint_delete_subscription_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/remove-subscription":{"post":{"summary":"Remove Subscription Endpoint","operationId":"remove_subscription_endpoint_remove_subscription_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing-information":{"get":{"summary":"Billing Information","operationId":"billing_information_billing_information_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SubscriptionSnapshot"},{"$ref":"#/components/schemas/SubscriptionStatusResponse"}],"title":"Response Billing Information Billing Information Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/create-checkout-session":{"post":{"summary":"Create Checkout Session","operationId":"create_checkout_session_create_checkout_session_post","parameters":[{"name":"tenant_id","in":"query","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenant-by-domain":{"get":{"summary":"Get Tenant By Domain","operationId":"get_tenant_by_domain_tenant_by_domain_get","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantByDomainRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TenantByDomainResponse"},{"type":"null"}],"title":"Response Get Tenant By Domain Tenant By Domain Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AttachSubscriptionRequest":{"properties":{"stripe_customer_id":{"type":"string","title":"Stripe Customer Id"},"stripe_subscription_id":{"type":"string","title":"Stripe Subscription Id"},"plan_id":{"type":"string","title":"Plan Id"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"},"current_period_start":{"type":"string","format":"date-time","title":"Current Period Start"},"current_period_end":{"type":"string","format":"date-time","title":"Current Period End"},"number_of_seats":{"type":"integer","title":"Number Of Seats"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End","default":false},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Start"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"}},"type":"object","required":["stripe_customer_id","stripe_subscription_id","plan_id","status","current_period_start","current_period_end","number_of_seats"],"title":"AttachSubscriptionRequest"},"BasicStripeInformationResponse":{"properties":{"stripe_customer_id":{"type":"string","title":"Stripe Customer Id"},"stripe_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Subscription Id"}},"type":"object","required":["stripe_customer_id","stripe_subscription_id"],"title":"BasicStripeInformationResponse"},"CreateSubscriptionRequest":{"properties":{"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"stripe_customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Id"},"stripe_subscription_id":{"type":"string","title":"Stripe Subscription Id"},"plan_id":{"type":"string","title":"Plan Id"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"},"current_period_start":{"type":"integer","title":"Current Period Start"},"current_period_end":{"type":"integer","title":"Current Period End"},"number_of_seats":{"type":"integer","title":"Number Of Seats"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End","default":false},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Start"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"}},"type":"object","required":["stripe_subscription_id","plan_id","status","current_period_start","current_period_end","number_of_seats"],"title":"CreateSubscriptionRequest"},"DeleteSubscriptionRequest":{"properties":{"stripe_subscription_id":{"type":"string","title":"Stripe Subscription Id"}},"type":"object","required":["stripe_subscription_id"],"title":"DeleteSubscriptionRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"RegistrationRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"google_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Google Token"}},"type":"object","required":["email"],"title":"RegistrationRequest"},"RemoveSubscriptionRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"}},"type":"object","required":["tenant_id"],"title":"RemoveSubscriptionRequest"},"SubscriptionSnapshot":{"properties":{"stripe_subscription_id":{"type":"string","title":"Stripe Subscription Id"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"},"current_period_start":{"type":"string","format":"date-time","title":"Current Period Start"},"current_period_end":{"type":"string","format":"date-time","title":"Current Period End"},"number_of_seats":{"type":"integer","title":"Number Of Seats"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Start"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"},"seats":{"type":"integer","title":"Seats"},"payment_method_enabled":{"type":"boolean","title":"Payment Method Enabled"}},"type":"object","required":["stripe_subscription_id","status","current_period_start","current_period_end","number_of_seats","cancel_at_period_end","canceled_at","trial_start","trial_end","seats","payment_method_enabled"],"title":"SubscriptionSnapshot"},"SubscriptionStatus":{"type":"string","enum":["trialing","active","past_due","canceled","unpaid","incomplete","incomplete_expired"],"title":"SubscriptionStatus"},"SubscriptionStatusResponse":{"properties":{"subscribed":{"type":"boolean","title":"Subscribed"}},"type":"object","required":["subscribed"],"title":"SubscriptionStatusResponse"},"TenantByDomainRequest":{"properties":{"domain":{"type":"string","title":"Domain"},"tenant_id":{"type":"string","title":"Tenant Id"}},"type":"object","required":["domain","tenant_id"],"title":"TenantByDomainRequest"},"TenantByDomainResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"number_of_users":{"type":"integer","title":"Number Of Users"},"creator_email":{"type":"string","title":"Creator Email"}},"type":"object","required":["tenant_id","number_of_users","creator_email"],"title":"TenantByDomainResponse"},"TenantDeleteRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"}},"type":"object","required":["tenant_id"],"title":"TenantDeleteRequest"},"TenantInfo":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"email":{"type":"string","format":"email","title":"Email"},"referral_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Source"}},"type":"object","required":["tenant_id","email"],"title":"TenantInfo"},"TenantSeatUpdate":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"number_of_users":{"type":"integer","title":"Number Of Users"}},"type":"object","required":["tenant_id","number_of_users"],"title":"TenantSeatUpdate"},"TenantSeatUpdateResponse":{"properties":{"status":{"type":"string","title":"Status"},"message":{"type":"string","title":"Message"}},"type":"object","required":["status","message"],"title":"TenantSeatUpdateResponse"},"UpdateSubscriptionRequest":{"properties":{"stripe_subscription_id":{"type":"string","title":"Stripe Subscription Id"},"stripe_customer_id":{"type":"string","title":"Stripe Customer Id"},"plan_id":{"type":"string","title":"Plan Id"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"},"current_period_start":{"type":"integer","title":"Current Period Start"},"current_period_end":{"type":"integer","title":"Current Period End"},"number_of_seats":{"type":"integer","title":"Number Of Seats"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End","default":false},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Start"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"}},"type":"object","required":["stripe_subscription_id","stripe_customer_id","plan_id","status","current_period_start","current_period_end","number_of_seats"],"title":"UpdateSubscriptionRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}