Skip to content

Feat: Added support for Customize Device Remembrance #1138

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/management/__generated/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {
PromptsManager,
RefreshTokensManager,
ResourceServersManager,
RiskAssessmentsManager,
RolesManager,
RulesManager,
RulesConfigsManager,
Expand Down Expand Up @@ -71,6 +72,7 @@ export abstract class ManagementClientBase {
public readonly prompts = new PromptsManager(this.configuration);
public readonly refreshTokens = new RefreshTokensManager(this.configuration);
public readonly resourceServers = new ResourceServersManager(this.configuration);
public readonly riskAssessments = new RiskAssessmentsManager(this.configuration);
public readonly roles = new RolesManager(this.configuration);
public readonly rules = new RulesManager(this.configuration);
public readonly rulesConfigs = new RulesConfigsManager(this.configuration);
Expand Down
1 change: 1 addition & 0 deletions src/management/__generated/managers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export * from './organizations-manager.js';
export * from './prompts-manager.js';
export * from './refresh-tokens-manager.js';
export * from './resource-servers-manager.js';
export * from './risk-assessments-manager.js';
export * from './roles-manager.js';
export * from './rules-manager.js';
export * from './rules-configs-manager.js';
Expand Down
109 changes: 109 additions & 0 deletions src/management/__generated/managers/risk-assessments-manager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import * as runtime from '../../../lib/runtime.js';
import type { InitOverride, ApiResponse } from '../../../lib/runtime.js';
import type {
GetRiskAssessmentsSettingsNewDeviceResponseContent,
GetRiskAssessmentsSettingsResponseContent,
UpdateRiskAssessmentsSettingsNewDeviceRequestContent,
UpdateRiskAssessmentsSettingsNewDeviceResponseContent,
UpdateRiskAssessmentsSettingsRequestContent,
UpdateRiskAssessmentsSettingsResponseContent,
} from '../models/index.js';

const { BaseAPI } = runtime;

/**
*
*/
export class RiskAssessmentsManager extends BaseAPI {
/**
* Gets the risk assessment settings for the new device assessor
*
* @throws {RequiredError}
*/
async getNewDeviceSettings(
initOverrides?: InitOverride
): Promise<ApiResponse<GetRiskAssessmentsSettingsNewDeviceResponseContent>> {
const response = await this.request(
{
path: `/risk-assessments/settings/new-device`,
method: 'GET',
},
initOverrides
);

return runtime.JSONApiResponse.fromResponse(response);
}

/**
* Gets the tenant settings for risk assessments
* Get risk assessment settings
*
* @throws {RequiredError}
*/
async getSettings(
initOverrides?: InitOverride
): Promise<ApiResponse<GetRiskAssessmentsSettingsResponseContent>> {
const response = await this.request(
{
path: `/risk-assessments/settings`,
method: 'GET',
},
initOverrides
);

return runtime.JSONApiResponse.fromResponse(response);
}

/**
* Updates the risk assessment settings for the new device assessor
*
* @throws {RequiredError}
*/
async updateNewDeviceSettings(
bodyParameters: UpdateRiskAssessmentsSettingsNewDeviceRequestContent,
initOverrides?: InitOverride
): Promise<ApiResponse<UpdateRiskAssessmentsSettingsNewDeviceResponseContent>> {
const headerParameters: runtime.HTTPHeaders = {};

headerParameters['Content-Type'] = 'application/json';

const response = await this.request(
{
path: `/risk-assessments/settings/new-device`,
method: 'PATCH',
headers: headerParameters,
body: bodyParameters,
},
initOverrides
);

return runtime.JSONApiResponse.fromResponse(response);
}

/**
* Updates the tenant settings for risk assessments
* Updates risk assessment settings
*
* @throws {RequiredError}
*/
async updateSettings(
bodyParameters: UpdateRiskAssessmentsSettingsRequestContent,
initOverrides?: InitOverride
): Promise<ApiResponse<UpdateRiskAssessmentsSettingsResponseContent>> {
const headerParameters: runtime.HTTPHeaders = {};

headerParameters['Content-Type'] = 'application/json';

const response = await this.request(
{
path: `/risk-assessments/settings`,
method: 'PATCH',
headers: headerParameters,
body: bodyParameters,
},
initOverrides
);

return runtime.JSONApiResponse.fromResponse(response);
}
}
34 changes: 34 additions & 0 deletions src/management/__generated/managers/users-manager.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as runtime from '../../../lib/runtime.js';
import type { InitOverride, ApiResponse } from '../../../lib/runtime.js';
import type {
ClearAssessorsRequestContent,
DeletePermissionsRequest,
DeleteUserIdentityByUserId200ResponseInner,
DeleteUserRolesRequest,
Expand Down Expand Up @@ -64,6 +65,7 @@ import type {
PatchAuthenticationMethodsByAuthenticationMethodIdOperationRequest,
PatchUsersByIdRequest,
PostAuthenticationMethodsOperationRequest,
PostClearAssessorsRequest,
PostIdentitiesOperationRequest,
PostInvalidateRememberBrowserRequest,
PostPermissionsOperationRequest,
Expand Down Expand Up @@ -1069,6 +1071,38 @@ export class UsersManager extends BaseAPI {
return runtime.JSONApiResponse.fromResponse(response);
}

/**
* Clear risk assessment assessors for a specific user
*
* @throws {RequiredError}
*/
async clearRiskAssessors(
requestParameters: PostClearAssessorsRequest,
bodyParameters: ClearAssessorsRequestContent,
initOverrides?: InitOverride
): Promise<ApiResponse<void>> {
runtime.validateRequiredRequestParams(requestParameters, ['id']);

const headerParameters: runtime.HTTPHeaders = {};

headerParameters['Content-Type'] = 'application/json';

const response = await this.request(
{
path: `/users/{id}/risk-assessments/clear`.replace(
'{id}',
encodeURIComponent(String(requestParameters.id))
),
method: 'POST',
headers: headerParameters,
body: bodyParameters,
},
initOverrides
);

return runtime.VoidApiResponse.fromResponse(response);
}

/**
* Link two user accounts together forming a primary and secondary relationship. On successful linking, the endpoint returns the new array of the primary account identities.
*
Expand Down
94 changes: 94 additions & 0 deletions src/management/__generated/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@
*/
update_draft?: boolean;
}

/**
*
*/
export const AssessorsTypeEnum = {
new_device: 'new-device',
} as const;
export type AssessorsTypeEnum = (typeof AssessorsTypeEnum)[keyof typeof AssessorsTypeEnum];

/**
* Certificate information. This object is relevant only for Custom Domains with Auth0-Managed Certificates.
*/
Expand Down Expand Up @@ -50,6 +59,21 @@
export type CertificateCertificateAuthorityEnum =
(typeof CertificateCertificateAuthorityEnum)[keyof typeof CertificateCertificateAuthorityEnum];

/**
*
*/
export interface ClearAssessorsRequestContent {
/**
* The name of the connection containing the user whose assessors should be cleared.
*
*/
connection: string;
/**
* List of assessors to clear.
*
*/
assessors: Array<AssessorsTypeEnum>;
}
/**
*
*/
Expand Down Expand Up @@ -5734,7 +5758,7 @@
/**
*
*/
export interface GetConnectionsKeysResponseContent

Check warning on line 5761 in src/management/__generated/models/index.ts

View workflow job for this annotation

GitHub Actions / Build and Test (18.17)

An interface declaring no members is equivalent to its supertype

Check warning on line 5761 in src/management/__generated/models/index.ts

View workflow job for this annotation

GitHub Actions / Build and Test (20.3)

An interface declaring no members is equivalent to its supertype
extends Array<GetConnectionsKeysResponseContentInner> {}
/**
*
Expand Down Expand Up @@ -8496,6 +8520,26 @@
*/
resource_servers: Array<ResourceServer>;
}
/**
*
*/
export interface GetRiskAssessmentsSettingsNewDeviceResponseContent {
/**
* Length of time to remember devices for, in days.
*
*/
remember_for: number;
}
/**
*
*/
export interface GetRiskAssessmentsSettingsResponseContent {
/**
* Whether or not risk assessment is enabled.
*
*/
enabled: boolean;
}
/**
*
*/
Expand Down Expand Up @@ -13677,7 +13721,7 @@
/**
*
*/
export interface PostFormsRequestNodesInnerAnyOf2ConfigComponentsInnerAnyOf2AnyOf13Config {}

Check warning on line 13724 in src/management/__generated/models/index.ts

View workflow job for this annotation

GitHub Actions / Build and Test (18.17)

An empty interface is equivalent to `{}`

Check warning on line 13724 in src/management/__generated/models/index.ts

View workflow job for this annotation

GitHub Actions / Build and Test (20.3)

An empty interface is equivalent to `{}`
/**
*
*/
Expand Down Expand Up @@ -18213,6 +18257,46 @@
export type UpdatePhoneTemplateResponseContentTypeEnum =
(typeof UpdatePhoneTemplateResponseContentTypeEnum)[keyof typeof UpdatePhoneTemplateResponseContentTypeEnum];

/**
*
*/
export interface UpdateRiskAssessmentsSettingsNewDeviceRequestContent {
/**
* Length of time to remember devices for, in days.
*
*/
remember_for: number;
}
/**
*
*/
export interface UpdateRiskAssessmentsSettingsNewDeviceResponseContent {
/**
* Length of time to remember devices for, in days.
*
*/
remember_for: number;
}
/**
*
*/
export interface UpdateRiskAssessmentsSettingsRequestContent {
/**
* Whether or not risk assessment is enabled.
*
*/
enabled: boolean;
}
/**
*
*/
export interface UpdateRiskAssessmentsSettingsResponseContent {
/**
* Whether or not risk assessment is enabled.
*
*/
enabled: boolean;
}
/**
*
*/
Expand Down Expand Up @@ -23002,6 +23086,16 @@
*/
id: string;
}
/**
*
*/
export interface PostClearAssessorsRequest {
/**
* ID of the user to clear assessors for.
*
*/
id: string;
}
/**
*
*/
Expand Down
56 changes: 56 additions & 0 deletions test/management/risk-assessments-manager.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import {
RiskAssessmentsManager,
ManagementClient,
UpdateRiskAssessmentsSettingsRequestContent,
UpdateRiskAssessmentsSettingsNewDeviceRequestContent,
} from '../../src/index.js';

import { checkMethod } from './tests.util.js';

const DOMAIN = `tenant.auth0.com`;
const token = 'TOKEN';

describe('RiskAssessmentsManager', () => {
const riskAssessmentsManager: RiskAssessmentsManager = new ManagementClient({
domain: DOMAIN,
token,
}).riskAssessments;

describe('getSetting', () => {
const operation = riskAssessmentsManager.getSettings();
const uri = `/risk-assessments/settings`;
const method = 'get';

checkMethod({ operation, uri, method });
});

describe('updateSettings', () => {
const requestBody: UpdateRiskAssessmentsSettingsRequestContent = {
enabled: true,
};
const operation = riskAssessmentsManager.updateSettings(requestBody);
const uri = `/risk-assessments/settings`;
const method = 'patch';

checkMethod({ operation, uri, method });
});

describe('getNewDeviceSettings', () => {
const operation = riskAssessmentsManager.getNewDeviceSettings();
const uri = `/risk-assessments/settings/new-device`;
const method = 'get';

checkMethod({ operation, uri, method });
});

describe('updateNewDeviceSettings', () => {
const requestParameters: UpdateRiskAssessmentsSettingsNewDeviceRequestContent = {
remember_for: 10,
};
const operation = riskAssessmentsManager.updateNewDeviceSettings(requestParameters);
const uri = `/risk-assessments/settings/new-device`;
const method = 'patch';

checkMethod({ operation, uri, method });
});
});
Loading
Loading