google-auth-library
Version:
Google APIs Authentication Client Library for Node.js
138 lines (137 loc) • 4.49 kB
TypeScript
/**
* Interface defining the JSON formatted response of a 3rd party executable
* used by the pluggable auth client.
*/
export interface ExecutableResponseJson {
/**
* The version of the JSON response. Only version 1 is currently supported.
* Always required.
*/
version: number;
/**
* Whether the executable ran successfully. Always required.
*/
success: boolean;
/**
* The epoch time for expiration of the token in seconds, required for
* successful responses.
*/
expiration_time?: number;
/**
* The type of subject token in the response, currently supported values are:
* urn:ietf:params:oauth:token-type:saml2
* urn:ietf:params:oauth:token-type:id_token
* urn:ietf:params:oauth:token-type:jwt
*/
token_type?: string;
/**
* The error code from the executable, required when unsuccessful.
*/
code?: string;
/**
* The error message from the executable, required when unsuccessful.
*/
message?: string;
/**
* The ID token to be used as a subject token when token_type is id_token or jwt.
*/
id_token?: string;
/**
* The response to be used as a subject token when token_type is saml2.
*/
saml_response?: string;
}
/**
* Defines the response of a 3rd party executable run by the pluggable auth client.
*/
export declare class ExecutableResponse {
/**
* The version of the Executable response. Only version 1 is currently supported.
*/
readonly version: number;
/**
* Whether the executable ran successfully.
*/
readonly success: boolean;
/**
* The epoch time for expiration of the token in seconds.
*/
readonly expirationTime?: number;
/**
* The type of subject token in the response, currently supported values are:
* urn:ietf:params:oauth:token-type:saml2
* urn:ietf:params:oauth:token-type:id_token
* urn:ietf:params:oauth:token-type:jwt
*/
readonly tokenType?: string;
/**
* The error code from the executable.
*/
readonly errorCode?: string;
/**
* The error message from the executable.
*/
readonly errorMessage?: string;
/**
* The subject token from the executable, format depends on tokenType.
*/
readonly subjectToken?: string;
/**
* Instantiates an ExecutableResponse instance using the provided JSON object
* from the output of the executable.
* @param responseJson Response from a 3rd party executable, loaded from a
* run of the executable or a cached output file.
*/
constructor(responseJson: ExecutableResponseJson);
/**
* @return A boolean representing if the response has a valid token. Returns
* true when the response was successful and the token is not expired.
*/
isValid(): boolean;
/**
* @return A boolean representing if the response is expired. Returns true if the
* provided timeout has passed.
*/
isExpired(): boolean;
}
/**
* An error thrown by the ExecutableResponse class.
*/
export declare class ExecutableResponseError extends Error {
constructor(message: string);
}
/**
* An error thrown when the 'version' field in an executable response is missing or invalid.
*/
export declare class InvalidVersionFieldError extends ExecutableResponseError {
}
/**
* An error thrown when the 'success' field in an executable response is missing or invalid.
*/
export declare class InvalidSuccessFieldError extends ExecutableResponseError {
}
/**
* An error thrown when the 'expiration_time' field in an executable response is missing or invalid.
*/
export declare class InvalidExpirationTimeFieldError extends ExecutableResponseError {
}
/**
* An error thrown when the 'token_type' field in an executable response is missing or invalid.
*/
export declare class InvalidTokenTypeFieldError extends ExecutableResponseError {
}
/**
* An error thrown when the 'code' field in an executable response is missing or invalid.
*/
export declare class InvalidCodeFieldError extends ExecutableResponseError {
}
/**
* An error thrown when the 'message' field in an executable response is missing or invalid.
*/
export declare class InvalidMessageFieldError extends ExecutableResponseError {
}
/**
* An error thrown when the subject token in an executable response is missing or invalid.
*/
export declare class InvalidSubjectTokenError extends ExecutableResponseError {
}