    client:client "Client"
    compat:compat "Compat"
    token:token "Token Service"
    identity:identity "Identity Service"
    catalog:catalog "Catalog Service"

    [c "Auth, No Tenant"]
    client:{token, user, service_catalog}=compat.POST /v2.0/tokens {'username': user, 'password': password}
    	compat:(user, password, None)=identity.authenticate(user, password, tenant=None)
    	compat:(id, user, password, None)=token.create_token(user, password, tenant=None)
    	compat:{service_catalog (includes all tenants)}=catalog.get_catalog(user, None)
    [/c]

    [c "Auth, With Tenant"]
    client:{scoped_token, user, service_catalog}=compat.POST /v2.0/tokens {'username': user, 'password': password, 'tenant': tenant}
    	compat:(user, password, tenant)=identity.authenticate(user, password, tenant)
    	compat:(id, user, password, tenant)=token.create_token(user, password, tenant)
    	compat:{service_catalog (includes all tenants)}=catalog.get_catalog(user, tenant)
    [/c]

    [c "Validate Token, Unscoped"]
    client:{token, user, tenant=None}=compat.GET /v2.0/tokens/$token
    compat:{token, user, tenant}=token.get_token($token)
    [/c]

    [c "Validate Token, With Tenant"]
    client:{token, user, tenant}=compat.GET /v2.0/tokens/$token?belongs_to=$tenant
    compat:{token, user, tenant}=token.get_token($token)
    [/c]

    [c "Tenants for Token"]
    client:{tenants}=compat.(X-Auth-Token: $token) GET /v2.0/tenants
    compat:{token, user, tenant}=token.get_token($token)
    compat:{token, user, tenant}=identity.get_tenants($user)
    [/c]