mongodb-stitch
Version:
[](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
134 lines (133 loc) • 6.24 kB
TypeScript
import { Codec, Encoder, Response } from "mongodb-stitch-core-sdk";
import { AppResponse, AppResponseCodec } from "./apps/AppsResources";
import { AuthProviderResponse, AuthProviderResponseCodec } from "./authProviders/AuthProvidersResources";
import { ProviderConfig, ProviderConfigCodec } from "./authProviders/ProviderConfigs";
import { FunctionCreator, FunctionCreatorCodec, FunctionResponse, FunctionResponseCodec } from "./functions/FunctionsResources";
import { RuleCreator, RuleCreatorCodec, RuleResponse, RuleResponseCodec } from "./services/rules/RulesResources";
import { ServiceConfig, ServiceConfigCodec } from "./services/ServiceConfigs";
import { ServiceResponse, ServiceResponseCodec } from "./services/ServicesResources";
import StitchAdminAuth from "./StitchAdminAuth";
import { ConfirmationEmail } from "./userRegistrations/UserRegistrationsResources";
import { UserCreator, UserCreatorCodec, UserResponse, UserResponseCodec } from "./users/UsersResources";
interface Resource {
url: string;
adminAuth: StitchAdminAuth;
}
declare class BasicResource implements Resource {
url: string;
adminAuth: StitchAdminAuth;
constructor(adminAuth: StitchAdminAuth, url: string);
}
declare function checkEmpty(response: Response): void;
declare class Listable<T> extends BasicResource {
readonly codec: Codec<T>;
list(): Promise<T[]>;
}
declare class Gettable<T> extends BasicResource {
readonly codec: Codec<T>;
get(): Promise<T>;
}
declare class Removable extends BasicResource {
remove(): Promise<void>;
}
declare class Creatable<Creator, T> extends BasicResource {
readonly codec: Codec<T>;
readonly creatorCodec: Encoder<Creator>;
create(data: Creator): Promise<T>;
}
declare class Updatable<T> extends BasicResource {
readonly updatableCodec: Codec<T>;
update(data: T): Promise<T>;
}
declare class Enablable extends BasicResource {
enable(): Promise<void>;
}
declare class Disablable extends BasicResource {
disable(): Promise<void>;
}
declare class AuthProvider extends BasicResource implements Gettable<AuthProviderResponse>, Updatable<AuthProviderResponse>, Removable, Enablable, Disablable {
readonly codec: AuthProviderResponseCodec;
readonly updatableCodec: AuthProviderResponseCodec;
get: () => Promise<AuthProviderResponse>;
update: (data: AuthProviderResponse) => Promise<AuthProviderResponse>;
remove: () => Promise<void>;
enable: () => Promise<void>;
disable: () => Promise<void>;
}
declare class AuthProviders extends BasicResource implements Listable<AuthProviderResponse>, Creatable<ProviderConfig, AuthProviderResponse> {
readonly codec: AuthProviderResponseCodec;
readonly creatorCodec: ProviderConfigCodec;
create: (data: ProviderConfig) => Promise<AuthProviderResponse>;
list: () => Promise<AuthProviderResponse[]>;
authProvider(providerId: string): AuthProvider;
}
declare class UserRegistrations extends BasicResource {
sendConfirmation(email: string): Promise<ConfirmationEmail>;
}
declare class User extends BasicResource implements Gettable<UserResponse>, Removable {
readonly codec: UserResponseCodec;
get: () => Promise<AuthProviderResponse>;
remove: () => Promise<void>;
}
declare class Users extends BasicResource implements Listable<UserResponse>, Creatable<UserCreator, UserResponse> {
readonly codec: UserResponseCodec;
readonly creatorCodec: UserCreatorCodec;
create: (data: UserCreator) => Promise<UserResponse>;
list: () => Promise<UserResponse[]>;
user(uid: string): User;
}
declare class Function extends BasicResource implements Gettable<FunctionResponse>, Updatable<FunctionCreator>, Removable {
readonly codec: FunctionResponseCodec;
readonly updatableCodec: FunctionCreatorCodec;
get: () => Promise<FunctionResponse>;
update: (data: FunctionCreator) => Promise<FunctionCreator>;
remove: () => Promise<void>;
}
declare class Functions extends BasicResource implements Listable<FunctionResponse>, Creatable<FunctionCreator, FunctionResponse> {
readonly codec: FunctionResponseCodec;
readonly creatorCodec: FunctionCreatorCodec;
create: (data: FunctionCreator) => Promise<FunctionResponse>;
list: () => Promise<FunctionResponse[]>;
function(fid: string): Function;
}
declare class Rule extends BasicResource implements Gettable<RuleResponse>, Removable {
codec: RuleResponseCodec;
get: () => Promise<RuleResponse>;
remove: () => Promise<void>;
}
declare class Rules extends BasicResource implements Listable<RuleResponse>, Creatable<RuleCreator, RuleResponse> {
creatorCodec: RuleCreatorCodec;
codec: RuleResponseCodec;
create: (data: RuleCreator) => Promise<RuleResponse>;
list: () => Promise<RuleResponse[]>;
}
declare class Service extends BasicResource implements Gettable<ServiceResponse>, Removable {
codec: ServiceResponseCodec;
get: () => Promise<ServiceResponse>;
remove: () => Promise<void>;
readonly rules: Rules;
}
declare class Services extends BasicResource implements Listable<ServiceResponse>, Creatable<ServiceConfig, ServiceResponse> {
creatorCodec: ServiceConfigCodec;
codec: ServiceResponseCodec;
list: () => Promise<ServiceResponse[]>;
create: (data: ServiceConfig) => Promise<ServiceResponse>;
service(id: string): Service;
}
declare class App extends BasicResource implements Gettable<AppResponse>, Removable {
readonly codec: AppResponseCodec;
readonly authProviders: AuthProviders;
readonly functions: Functions;
readonly services: Services;
readonly users: Users;
readonly userRegistrations: UserRegistrations;
get: () => Promise<AppResponse>;
remove: () => Promise<void>;
}
declare class Apps extends BasicResource implements Listable<AppResponse> {
readonly codec: AppResponseCodec;
list: () => Promise<AppResponse[]>;
create(name: string, defaults?: boolean): Promise<AppResponse>;
app(appId: string): App;
}
export { Apps, App, BasicResource, Gettable, Updatable, Listable, Creatable, Enablable, Disablable, Resource, Removable, Services, Service, Rules, Rule, Functions, Function, Users, User, UserRegistrations, AuthProvider, AuthProviders, checkEmpty };