homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
88 lines • 3.65 kB
TypeScript
export type Scope = 'Monitor' | 'Control' | 'Settings' | 'Images' | 'AirConditioner' | 'AirConditioner-Monitor' | 'AirConditioner-Control' | 'AirConditioner-Settings' | 'CleaningRobot' | 'CleaningRobot-Monitor' | 'CleaningRobot-Control' | 'CleaningRobot-Settings' | 'CoffeeMaker' | 'CoffeeMaker-Monitor' | 'CoffeeMaker-Control' | 'CoffeeMaker-Settings' | 'CookProcessor' | 'CookProcessor-Monitor' | 'CookProcessor-Control' | 'CookProcessor-Settings' | 'Dishwasher' | 'Dishwasher-Monitor' | 'Dishwasher-Control' | 'Dishwasher-Settings' | 'Dryer' | 'Dryer-Monitor' | 'Dryer-Control' | 'Dryer-Settings' | 'Freezer' | 'Freezer-Monitor' | 'Freezer-Control' | 'Freezer-Settings' | 'FridgeFreezer' | 'FridgeFreezer-Monitor' | 'FridgeFreezer-Control' | 'FridgeFreezer-Settings' | 'FridgeFreezer-Images' | 'Hob' | 'Hob-Monitor' | 'Hob-Control' | 'Hob-Settings' | 'Hood' | 'Hood-Monitor' | 'Hood-Control' | 'Hood-Settings' | 'Microwave' | 'Microwave-Monitor' | 'Microwave-Control' | 'Microwave-Settings' | 'Oven' | 'Oven-Monitor' | 'Oven-Control' | 'Oven-Settings' | 'Refrigerator' | 'Refrigerator-Monitor' | 'Refrigerator-Control' | 'Refrigerator-Settings' | 'Washer' | 'Washer-Monitor' | 'Washer-Control' | 'Washer-Settings' | 'WasherDryer' | 'WasherDryer-Monitor' | 'WasherDryer-Control' | 'WasherDryer-Settings' | 'WineCooler' | 'WineCooler-Monitor' | 'WineCooler-Control' | 'WineCooler-Settings';
export interface AuthorisationRequest {
client_id: string;
redirect_uri?: string;
response_type: 'code';
scope?: string;
state?: AuthorisationState;
nonce?: string;
code_challenge?: string;
code_challenge_method?: 'plain' | 'S256';
}
export type AuthorisationState = string | number;
export interface AuthorisationResponse {
code: string;
grant_type?: 'authorization_code';
state?: AuthorisationState;
}
export interface AccessTokenRequest {
client_id: string;
client_secret?: string;
redirect_uri?: string;
grant_type: 'authorization_code';
code: string;
code_verifier?: string;
}
export interface AccessTokenResponse {
id_token: string;
access_token: string;
expires_in: number;
scope: string;
refresh_token: string;
token_type?: 'Bearer';
}
export interface DeviceAuthorisationRequest {
client_id: string;
scope?: string;
}
export interface DeviceAuthorisationResponse {
device_code: string;
user_code: string;
verification_uri: string;
verification_uri_complete?: string;
expires_in?: number;
interval?: number;
}
export interface DeviceAccessTokenRequest {
grant_type: 'urn:ietf:params:oauth:grant-type:device_code' | 'device_code';
device_code: string;
client_id: string;
client_secret?: string;
}
export interface DeviceAccessTokenResponse {
id_token: string;
access_token: string;
expires_in: number;
scope: string;
refresh_token: string;
token_type?: 'Bearer';
}
export interface AccessTokenRefreshRequest {
grant_type: 'refresh_token';
refresh_token: string;
client_secret?: string;
scope?: string;
expires_in?: number;
}
export interface AccessTokenRefreshResponse {
id_token: string;
access_token: string;
expires_in: number;
scope: string;
refresh_token: string;
token_type: 'Bearer';
}
export interface AbsoluteToken {
refreshToken: string;
accessToken: string;
accessExpires: number;
scopes: string[];
}
export interface PersistAbsoluteTokens {
[index: string]: AbsoluteToken;
}
export interface AuthorisationError {
error: string;
error_description: string;
}
//# sourceMappingURL=api-auth-types.d.ts.map