auth0
Version:
Auth0 Node.js SDK for the Management API v2.
682 lines (681 loc) • 45.3 kB
JavaScript
// This file was auto-generated by Fern from our API Definition.
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { normalizeClientOptionsWithAuth } from "../../../../BaseClient.mjs";
import * as core from "../../../../core/index.mjs";
import { mergeHeaders } from "../../../../core/headers.mjs";
import * as environments from "../../../../environments.mjs";
import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.mjs";
import * as errors from "../../../../errors/index.mjs";
import * as Management from "../../../index.mjs";
import { ConnectionsClient } from "../resources/connections/client/Client.mjs";
import { CredentialsClient } from "../resources/credentials/client/Client.mjs";
export class ClientsClient {
constructor(options) {
this._options = normalizeClientOptionsWithAuth(options);
}
get credentials() {
var _a;
return ((_a = this._credentials) !== null && _a !== void 0 ? _a : (this._credentials = new CredentialsClient(this._options)));
}
get connections() {
var _a;
return ((_a = this._connections) !== null && _a !== void 0 ? _a : (this._connections = new ConnectionsClient(this._options)));
}
/**
* Retrieve clients (applications and SSO integrations) matching provided filters. A list of fields to include or exclude may also be specified.
* For more information, read [Applications in Auth0](https://www.auth0.com/docs/get-started/applications) and [Single Sign-On](https://www.auth0.com/docs/authenticate/single-sign-on).
*
* - The following can be retrieved with any scope:
* `client_id`, `app_type`, `name`, and `description`.
* - The following properties can only be retrieved with the `read:clients` or
* `read:client_keys` scope:
* `callbacks`, `oidc_logout`, `allowed_origins`,
* `web_origins`, `tenant`, `global`, `config_route`,
* `callback_url_template`, `jwt_configuration`,
* `jwt_configuration.lifetime_in_seconds`, `jwt_configuration.secret_encoded`,
* `jwt_configuration.scopes`, `jwt_configuration.alg`, `api_type`,
* `logo_uri`, `allowed_clients`, `owners`, `custom_login_page`,
* `custom_login_page_off`, `sso`, `addons`, `form_template`,
* `custom_login_page_codeview`, `resource_servers`, `client_metadata`,
* `mobile`, `mobile.android`, `mobile.ios`, `allowed_logout_urls`,
* `token_endpoint_auth_method`, `is_first_party`, `oidc_conformant`,
* `is_token_endpoint_ip_header_trusted`, `initiate_login_uri`, `grant_types`,
* `refresh_token`, `refresh_token.rotation_type`, `refresh_token.expiration_type`,
* `refresh_token.leeway`, `refresh_token.token_lifetime`, `refresh_token.policies`, `organization_usage`,
* `organization_require_behavior`.
* - The following properties can only be retrieved with the
* `read:client_keys` or `read:client_credentials` scope:
* `encryption_key`, `encryption_key.pub`, `encryption_key.cert`,
* `client_secret`, `client_authentication_methods` and `signing_key`.
*
* @param {Management.ListClientsRequestParameters} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.TooManyRequestsError}
*
* @example
* await client.clients.list({
* fields: "fields",
* include_fields: true,
* page: 1,
* per_page: 1,
* include_totals: true,
* is_global: true,
* is_first_party: true,
* app_type: "app_type",
* external_client_id: "external_client_id",
* q: "q"
* })
*/
list() {
return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
const list = core.HttpResponsePromise.interceptFunction((request) => __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const { fields, include_fields: includeFields, page = 0, per_page: perPage = 50, include_totals: includeTotals = true, is_global: isGlobal, is_first_party: isFirstParty, app_type: appType, external_client_id: externalClientId, q, } = request;
const _queryParams = {
fields,
include_fields: includeFields,
page,
per_page: perPage,
include_totals: includeTotals,
is_global: isGlobal,
is_first_party: isFirstParty,
app_type: appType,
external_client_id: externalClientId,
q,
};
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, "clients"),
method: "GET",
headers: _headers,
queryString: core.url
.queryBuilder()
.addMany(_queryParams)
.mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams)
.build(),
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: _response.body,
rawResponse: _response.rawResponse,
};
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/clients");
}));
let _offset = (request === null || request === void 0 ? void 0 : request.page) != null ? request === null || request === void 0 ? void 0 : request.page : 0;
const dataWithRawResponse = yield list(request).withRawResponse();
return new core.Page({
response: dataWithRawResponse.data,
rawResponse: dataWithRawResponse.rawResponse,
hasNextPage: (response) => { var _a, _b; return ((_a = response === null || response === void 0 ? void 0 : response.clients) !== null && _a !== void 0 ? _a : []).length >= Math.floor((_b = request === null || request === void 0 ? void 0 : request.per_page) !== null && _b !== void 0 ? _b : 50); },
getItems: (response) => { var _a; return (_a = response === null || response === void 0 ? void 0 : response.clients) !== null && _a !== void 0 ? _a : []; },
loadPage: (_response) => {
_offset += 1;
return list(core.setObjectProperty(request, "page", _offset));
},
});
});
}
/**
* Create a new client (application or SSO integration). For more information, read [Create Applications](https://www.auth0.com/docs/get-started/auth0-overview/create-applications)
* [API Endpoints for Single Sign-On](https://www.auth0.com/docs/authenticate/single-sign-on/api-endpoints-for-single-sign-on).
*
* Notes:
* - We recommend leaving the `client_secret` parameter unspecified to allow the generation of a safe secret.
* - The `client_authentication_methods` and `token_endpoint_auth_method` properties are mutually exclusive. Use
* `client_authentication_methods` to configure the client with Private Key JWT authentication method. Otherwise, use `token_endpoint_auth_method`
* to configure the client with client secret (basic or post) or with no authentication method (none).
* - When using `client_authentication_methods` to configure the client with Private Key JWT authentication method, specify fully defined credentials.
* These credentials will be automatically enabled for Private Key JWT authentication on the client.
* - To configure `client_authentication_methods`, the `create:client_credentials` scope is required.
* - To configure `client_authentication_methods`, the property `jwt_configuration.alg` must be set to RS256.
*
* SSO Integrations created via this endpoint will accept login requests and share user profile information.
*
* @param {Management.CreateClientRequestContent} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.ConflictError}
* @throws {@link Management.TooManyRequestsError}
*
* @example
* await client.clients.create({
* name: "name"
* })
*/
create(request, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));
}
__create(request, requestOptions) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, "clients"),
method: "POST",
headers: _headers,
contentType: "application/json",
queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
requestType: "json",
body: request,
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: _response.body,
rawResponse: _response.rawResponse,
};
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 409:
throw new Management.ConflictError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/clients");
});
}
/**
*
* Fetches and validates a Client ID Metadata Document without creating a client.
* Returns the raw metadata and how it would be mapped to Auth0 client fields.
* This endpoint is useful for testing metadata URIs before creating CIMD clients.
*
*
* @param {Management.PreviewCimdMetadataRequestContent} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.TooManyRequestsError}
* @throws {@link Management.InternalServerError}
*
* @example
* await client.clients.previewCimdMetadata({
* external_client_id: "external_client_id"
* })
*/
previewCimdMetadata(request, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__previewCimdMetadata(request, requestOptions));
}
__previewCimdMetadata(request, requestOptions) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, "clients/cimd/preview"),
method: "POST",
headers: _headers,
contentType: "application/json",
queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
requestType: "json",
body: request,
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: _response.body,
rawResponse: _response.rawResponse,
};
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
case 500:
throw new Management.InternalServerError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/clients/cimd/preview");
});
}
/**
* Idempotent registration for Client ID Metadata Document (CIMD) clients.
* Uses external_client_id as the unique identifier for upsert operations.
*
* **Create:** Returns 201 when a new client is created (requires `create:clients` scope).
* **Update:** Returns 200 when an existing client is updated (requires `update:clients` scope).
*
* This endpoint automatically:
* - Fetches and validates the metadata document
* - Maps CIMD fields to Auth0 client configuration
* - Creates/rotates credentials from the JWKS
* - Enforces CIMD security policies (HTTPS-only, no shared secrets)
*
* @param {Management.RegisterCimdClientRequestContent} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.TooManyRequestsError}
* @throws {@link Management.InternalServerError}
*
* @example
* await client.clients.registerCimdClient({
* external_client_id: "external_client_id"
* })
*/
registerCimdClient(request, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__registerCimdClient(request, requestOptions));
}
__registerCimdClient(request, requestOptions) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, "clients/cimd/register"),
method: "POST",
headers: _headers,
contentType: "application/json",
queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
requestType: "json",
body: request,
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: _response.body,
rawResponse: _response.rawResponse,
};
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
case 500:
throw new Management.InternalServerError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/clients/cimd/register");
});
}
/**
* Retrieve client details by ID. Clients are SSO connections or Applications linked with your Auth0 tenant. A list of fields to include or exclude may also be specified.
* For more information, read [Applications in Auth0](https://www.auth0.com/docs/get-started/applications) and [Single Sign-On](https://www.auth0.com/docs/authenticate/single-sign-on).
*
* - The following properties can be retrieved with any of the scopes:
* `client_id`, `app_type`, `name`, and `description`.
* - The following properties can only be retrieved with the `read:clients` or
* `read:client_keys` scopes:
* `callbacks`, `oidc_logout`, `allowed_origins`,
* `web_origins`, `tenant`, `global`, `config_route`,
* `callback_url_template`, `jwt_configuration`,
* `jwt_configuration.lifetime_in_seconds`, `jwt_configuration.secret_encoded`,
* `jwt_configuration.scopes`, `jwt_configuration.alg`, `api_type`,
* `logo_uri`, `allowed_clients`, `owners`, `custom_login_page`,
* `custom_login_page_off`, `sso`, `addons`, `form_template`,
* `custom_login_page_codeview`, `resource_servers`, `client_metadata`,
* `mobile`, `mobile.android`, `mobile.ios`, `allowed_logout_urls`,
* `token_endpoint_auth_method`, `is_first_party`, `oidc_conformant`,
* `is_token_endpoint_ip_header_trusted`, `initiate_login_uri`, `grant_types`,
* `refresh_token`, `refresh_token.rotation_type`, `refresh_token.expiration_type`,
* `refresh_token.leeway`, `refresh_token.token_lifetime`, `refresh_token.policies`, `organization_usage`,
* `organization_require_behavior`.
* - The following properties can only be retrieved with the `read:client_keys` or `read:client_credentials` scopes:
* `encryption_key`, `encryption_key.pub`, `encryption_key.cert`,
* `client_secret`, `client_authentication_methods` and `signing_key`.
*
* @param {string} id - ID of the client to retrieve.
* @param {Management.GetClientRequestParameters} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.NotFoundError}
* @throws {@link Management.TooManyRequestsError}
*
* @example
* await client.clients.get("id", {
* fields: "fields",
* include_fields: true
* })
*/
get(id, request = {}, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions));
}
__get(id_1) {
return __awaiter(this, arguments, void 0, function* (id, request = {}, requestOptions) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const { fields, include_fields: includeFields } = request;
const _queryParams = {
fields,
include_fields: includeFields,
};
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, `clients/${core.url.encodePathParam(id)}`),
method: "GET",
headers: _headers,
queryString: core.url
.queryBuilder()
.addMany(_queryParams)
.mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams)
.build(),
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return { data: _response.body, rawResponse: _response.rawResponse };
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 404:
throw new Management.NotFoundError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/clients/{id}");
});
}
/**
* Delete a client and related configuration (rules, connections, etc).
*
* @param {string} id - ID of the client to delete.
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.TooManyRequestsError}
*
* @example
* await client.clients.delete("id")
*/
delete(id, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions));
}
__delete(id, requestOptions) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, `clients/${core.url.encodePathParam(id)}`),
method: "DELETE",
headers: _headers,
queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return { data: undefined, rawResponse: _response.rawResponse };
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/clients/{id}");
});
}
/**
* Updates a client's settings. For more information, read [Applications in Auth0](https://www.auth0.com/docs/get-started/applications) and [Single Sign-On](https://www.auth0.com/docs/authenticate/single-sign-on).
*
* Notes:
* - The `client_secret` and `signing_key` attributes can only be updated with the `update:client_keys` scope.
* - The `client_authentication_methods` and `token_endpoint_auth_method` properties are mutually exclusive. Use `client_authentication_methods` to configure the client with Private Key JWT authentication method. Otherwise, use `token_endpoint_auth_method` to configure the client with client secret (basic or post) or with no authentication method (none).
* - When using `client_authentication_methods` to configure the client with Private Key JWT authentication method, only specify the credential IDs that were generated when creating the credentials on the client.
* - To configure `client_authentication_methods`, the `update:client_credentials` scope is required.
* - To configure `client_authentication_methods`, the property `jwt_configuration.alg` must be set to RS256.
* - To change a client's `is_first_party` property to `false`, the `organization_usage` and `organization_require_behavior` properties must be unset.
*
* @param {string} id - ID of the client to update.
* @param {Management.UpdateClientRequestContent} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.NotFoundError}
* @throws {@link Management.TooManyRequestsError}
*
* @example
* await client.clients.update("id")
*/
update(id, request = {}, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions));
}
__update(id_1) {
return __awaiter(this, arguments, void 0, function* (id, request = {}, requestOptions) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, `clients/${core.url.encodePathParam(id)}`),
method: "PATCH",
headers: _headers,
contentType: "application/json",
queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
requestType: "json",
body: request,
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: _response.body,
rawResponse: _response.rawResponse,
};
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 404:
throw new Management.NotFoundError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/clients/{id}");
});
}
/**
* Rotate a client secret.
*
* This endpoint cannot be used with clients configured with Private Key JWT authentication method (client_authentication_methods configured with private_key_jwt). The generated secret is NOT base64 encoded.
*
* For more information, read [Rotate Client Secrets](https://www.auth0.com/docs/get-started/applications/rotate-client-secret).
*
* @param {string} id - ID of the client that will rotate secrets.
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Management.BadRequestError}
* @throws {@link Management.UnauthorizedError}
* @throws {@link Management.ForbiddenError}
* @throws {@link Management.NotFoundError}
* @throws {@link Management.TooManyRequestsError}
*
* @example
* await client.clients.rotateSecret("id")
*/
rotateSecret(id, requestOptions) {
return core.HttpResponsePromise.fromPromise(this.__rotateSecret(id, requestOptions));
}
__rotateSecret(id, requestOptions) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const _authRequest = yield this._options.authProvider.getAuthRequest();
let _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.ManagementEnvironment.Default, `clients/${core.url.encodePathParam(id)}/rotate-secret`),
method: "POST",
headers: _headers,
queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
logging: this._options.logging,
});
if (_response.ok) {
return {
data: _response.body,
rawResponse: _response.rawResponse,
};
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 400:
throw new Management.BadRequestError(_response.error.body, _response.rawResponse);
case 401:
throw new Management.UnauthorizedError(_response.error.body, _response.rawResponse);
case 403:
throw new Management.ForbiddenError(_response.error.body, _response.rawResponse);
case 404:
throw new Management.NotFoundError(_response.error.body, _response.rawResponse);
case 429:
throw new Management.TooManyRequestsError(_response.error.body, _response.rawResponse);
default:
throw new errors.ManagementError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/clients/{id}/rotate-secret");
});
}
}