Skip to content

Commit e292704

Browse files
authored
Feat: Added support for Customize Device Remembrance (#1138)
2 parents 35cb3cb + fe63ccf commit e292704

File tree

7 files changed

+348
-0
lines changed

7 files changed

+348
-0
lines changed

src/management/__generated/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {
2828
PromptsManager,
2929
RefreshTokensManager,
3030
ResourceServersManager,
31+
RiskAssessmentsManager,
3132
RolesManager,
3233
RulesManager,
3334
RulesConfigsManager,
@@ -71,6 +72,7 @@ export abstract class ManagementClientBase {
7172
public readonly prompts = new PromptsManager(this.configuration);
7273
public readonly refreshTokens = new RefreshTokensManager(this.configuration);
7374
public readonly resourceServers = new ResourceServersManager(this.configuration);
75+
public readonly riskAssessments = new RiskAssessmentsManager(this.configuration);
7476
public readonly roles = new RolesManager(this.configuration);
7577
public readonly rules = new RulesManager(this.configuration);
7678
public readonly rulesConfigs = new RulesConfigsManager(this.configuration);

src/management/__generated/managers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export * from './organizations-manager.js';
2424
export * from './prompts-manager.js';
2525
export * from './refresh-tokens-manager.js';
2626
export * from './resource-servers-manager.js';
27+
export * from './risk-assessments-manager.js';
2728
export * from './roles-manager.js';
2829
export * from './rules-manager.js';
2930
export * from './rules-configs-manager.js';
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
import * as runtime from '../../../lib/runtime.js';
2+
import type { InitOverride, ApiResponse } from '../../../lib/runtime.js';
3+
import type {
4+
GetRiskAssessmentsSettingsNewDeviceResponseContent,
5+
GetRiskAssessmentsSettingsResponseContent,
6+
UpdateRiskAssessmentsSettingsNewDeviceRequestContent,
7+
UpdateRiskAssessmentsSettingsNewDeviceResponseContent,
8+
UpdateRiskAssessmentsSettingsRequestContent,
9+
UpdateRiskAssessmentsSettingsResponseContent,
10+
} from '../models/index.js';
11+
12+
const { BaseAPI } = runtime;
13+
14+
/**
15+
*
16+
*/
17+
export class RiskAssessmentsManager extends BaseAPI {
18+
/**
19+
* Gets the risk assessment settings for the new device assessor
20+
*
21+
* @throws {RequiredError}
22+
*/
23+
async getNewDeviceSettings(
24+
initOverrides?: InitOverride
25+
): Promise<ApiResponse<GetRiskAssessmentsSettingsNewDeviceResponseContent>> {
26+
const response = await this.request(
27+
{
28+
path: `/risk-assessments/settings/new-device`,
29+
method: 'GET',
30+
},
31+
initOverrides
32+
);
33+
34+
return runtime.JSONApiResponse.fromResponse(response);
35+
}
36+
37+
/**
38+
* Gets the tenant settings for risk assessments
39+
* Get risk assessment settings
40+
*
41+
* @throws {RequiredError}
42+
*/
43+
async getSettings(
44+
initOverrides?: InitOverride
45+
): Promise<ApiResponse<GetRiskAssessmentsSettingsResponseContent>> {
46+
const response = await this.request(
47+
{
48+
path: `/risk-assessments/settings`,
49+
method: 'GET',
50+
},
51+
initOverrides
52+
);
53+
54+
return runtime.JSONApiResponse.fromResponse(response);
55+
}
56+
57+
/**
58+
* Updates the risk assessment settings for the new device assessor
59+
*
60+
* @throws {RequiredError}
61+
*/
62+
async updateNewDeviceSettings(
63+
bodyParameters: UpdateRiskAssessmentsSettingsNewDeviceRequestContent,
64+
initOverrides?: InitOverride
65+
): Promise<ApiResponse<UpdateRiskAssessmentsSettingsNewDeviceResponseContent>> {
66+
const headerParameters: runtime.HTTPHeaders = {};
67+
68+
headerParameters['Content-Type'] = 'application/json';
69+
70+
const response = await this.request(
71+
{
72+
path: `/risk-assessments/settings/new-device`,
73+
method: 'PATCH',
74+
headers: headerParameters,
75+
body: bodyParameters,
76+
},
77+
initOverrides
78+
);
79+
80+
return runtime.JSONApiResponse.fromResponse(response);
81+
}
82+
83+
/**
84+
* Updates the tenant settings for risk assessments
85+
* Updates risk assessment settings
86+
*
87+
* @throws {RequiredError}
88+
*/
89+
async updateSettings(
90+
bodyParameters: UpdateRiskAssessmentsSettingsRequestContent,
91+
initOverrides?: InitOverride
92+
): Promise<ApiResponse<UpdateRiskAssessmentsSettingsResponseContent>> {
93+
const headerParameters: runtime.HTTPHeaders = {};
94+
95+
headerParameters['Content-Type'] = 'application/json';
96+
97+
const response = await this.request(
98+
{
99+
path: `/risk-assessments/settings`,
100+
method: 'PATCH',
101+
headers: headerParameters,
102+
body: bodyParameters,
103+
},
104+
initOverrides
105+
);
106+
107+
return runtime.JSONApiResponse.fromResponse(response);
108+
}
109+
}

src/management/__generated/managers/users-manager.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as runtime from '../../../lib/runtime.js';
22
import type { InitOverride, ApiResponse } from '../../../lib/runtime.js';
33
import type {
4+
ClearAssessorsRequestContent,
45
DeletePermissionsRequest,
56
DeleteUserIdentityByUserId200ResponseInner,
67
DeleteUserRolesRequest,
@@ -64,6 +65,7 @@ import type {
6465
PatchAuthenticationMethodsByAuthenticationMethodIdOperationRequest,
6566
PatchUsersByIdRequest,
6667
PostAuthenticationMethodsOperationRequest,
68+
PostClearAssessorsRequest,
6769
PostIdentitiesOperationRequest,
6870
PostInvalidateRememberBrowserRequest,
6971
PostPermissionsOperationRequest,
@@ -1069,6 +1071,38 @@ export class UsersManager extends BaseAPI {
10691071
return runtime.JSONApiResponse.fromResponse(response);
10701072
}
10711073

1074+
/**
1075+
* Clear risk assessment assessors for a specific user
1076+
*
1077+
* @throws {RequiredError}
1078+
*/
1079+
async clearRiskAssessors(
1080+
requestParameters: PostClearAssessorsRequest,
1081+
bodyParameters: ClearAssessorsRequestContent,
1082+
initOverrides?: InitOverride
1083+
): Promise<ApiResponse<void>> {
1084+
runtime.validateRequiredRequestParams(requestParameters, ['id']);
1085+
1086+
const headerParameters: runtime.HTTPHeaders = {};
1087+
1088+
headerParameters['Content-Type'] = 'application/json';
1089+
1090+
const response = await this.request(
1091+
{
1092+
path: `/users/{id}/risk-assessments/clear`.replace(
1093+
'{id}',
1094+
encodeURIComponent(String(requestParameters.id))
1095+
),
1096+
method: 'POST',
1097+
headers: headerParameters,
1098+
body: bodyParameters,
1099+
},
1100+
initOverrides
1101+
);
1102+
1103+
return runtime.VoidApiResponse.fromResponse(response);
1104+
}
1105+
10721106
/**
10731107
* 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.
10741108
*

src/management/__generated/models/index.ts

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ export interface ActionsDraftUpdate {
88
*/
99
update_draft?: boolean;
1010
}
11+
12+
/**
13+
*
14+
*/
15+
export const AssessorsTypeEnum = {
16+
new_device: 'new-device',
17+
} as const;
18+
export type AssessorsTypeEnum = (typeof AssessorsTypeEnum)[keyof typeof AssessorsTypeEnum];
19+
1120
/**
1221
* Certificate information. This object is relevant only for Custom Domains with Auth0-Managed Certificates.
1322
*/
@@ -50,6 +59,21 @@ export const CertificateCertificateAuthorityEnum = {
5059
export type CertificateCertificateAuthorityEnum =
5160
(typeof CertificateCertificateAuthorityEnum)[keyof typeof CertificateCertificateAuthorityEnum];
5261

62+
/**
63+
*
64+
*/
65+
export interface ClearAssessorsRequestContent {
66+
/**
67+
* The name of the connection containing the user whose assessors should be cleared.
68+
*
69+
*/
70+
connection: string;
71+
/**
72+
* List of assessors to clear.
73+
*
74+
*/
75+
assessors: Array<AssessorsTypeEnum>;
76+
}
5377
/**
5478
*
5579
*/
@@ -8496,6 +8520,26 @@ export interface GetResourceServers200ResponseOneOf {
84968520
*/
84978521
resource_servers: Array<ResourceServer>;
84988522
}
8523+
/**
8524+
*
8525+
*/
8526+
export interface GetRiskAssessmentsSettingsNewDeviceResponseContent {
8527+
/**
8528+
* Length of time to remember devices for, in days.
8529+
*
8530+
*/
8531+
remember_for: number;
8532+
}
8533+
/**
8534+
*
8535+
*/
8536+
export interface GetRiskAssessmentsSettingsResponseContent {
8537+
/**
8538+
* Whether or not risk assessment is enabled.
8539+
*
8540+
*/
8541+
enabled: boolean;
8542+
}
84998543
/**
85008544
*
85018545
*/
@@ -18213,6 +18257,46 @@ export const UpdatePhoneTemplateResponseContentTypeEnum = {
1821318257
export type UpdatePhoneTemplateResponseContentTypeEnum =
1821418258
(typeof UpdatePhoneTemplateResponseContentTypeEnum)[keyof typeof UpdatePhoneTemplateResponseContentTypeEnum];
1821518259

18260+
/**
18261+
*
18262+
*/
18263+
export interface UpdateRiskAssessmentsSettingsNewDeviceRequestContent {
18264+
/**
18265+
* Length of time to remember devices for, in days.
18266+
*
18267+
*/
18268+
remember_for: number;
18269+
}
18270+
/**
18271+
*
18272+
*/
18273+
export interface UpdateRiskAssessmentsSettingsNewDeviceResponseContent {
18274+
/**
18275+
* Length of time to remember devices for, in days.
18276+
*
18277+
*/
18278+
remember_for: number;
18279+
}
18280+
/**
18281+
*
18282+
*/
18283+
export interface UpdateRiskAssessmentsSettingsRequestContent {
18284+
/**
18285+
* Whether or not risk assessment is enabled.
18286+
*
18287+
*/
18288+
enabled: boolean;
18289+
}
18290+
/**
18291+
*
18292+
*/
18293+
export interface UpdateRiskAssessmentsSettingsResponseContent {
18294+
/**
18295+
* Whether or not risk assessment is enabled.
18296+
*
18297+
*/
18298+
enabled: boolean;
18299+
}
1821618300
/**
1821718301
*
1821818302
*/
@@ -23002,6 +23086,16 @@ export interface PostAuthenticationMethodsOperationRequest {
2300223086
*/
2300323087
id: string;
2300423088
}
23089+
/**
23090+
*
23091+
*/
23092+
export interface PostClearAssessorsRequest {
23093+
/**
23094+
* ID of the user to clear assessors for.
23095+
*
23096+
*/
23097+
id: string;
23098+
}
2300523099
/**
2300623100
*
2300723101
*/
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import {
2+
RiskAssessmentsManager,
3+
ManagementClient,
4+
UpdateRiskAssessmentsSettingsRequestContent,
5+
UpdateRiskAssessmentsSettingsNewDeviceRequestContent,
6+
} from '../../src/index.js';
7+
8+
import { checkMethod } from './tests.util.js';
9+
10+
const DOMAIN = `tenant.auth0.com`;
11+
const token = 'TOKEN';
12+
13+
describe('RiskAssessmentsManager', () => {
14+
const riskAssessmentsManager: RiskAssessmentsManager = new ManagementClient({
15+
domain: DOMAIN,
16+
token,
17+
}).riskAssessments;
18+
19+
describe('getSetting', () => {
20+
const operation = riskAssessmentsManager.getSettings();
21+
const uri = `/risk-assessments/settings`;
22+
const method = 'get';
23+
24+
checkMethod({ operation, uri, method });
25+
});
26+
27+
describe('updateSettings', () => {
28+
const requestBody: UpdateRiskAssessmentsSettingsRequestContent = {
29+
enabled: true,
30+
};
31+
const operation = riskAssessmentsManager.updateSettings(requestBody);
32+
const uri = `/risk-assessments/settings`;
33+
const method = 'patch';
34+
35+
checkMethod({ operation, uri, method });
36+
});
37+
38+
describe('getNewDeviceSettings', () => {
39+
const operation = riskAssessmentsManager.getNewDeviceSettings();
40+
const uri = `/risk-assessments/settings/new-device`;
41+
const method = 'get';
42+
43+
checkMethod({ operation, uri, method });
44+
});
45+
46+
describe('updateNewDeviceSettings', () => {
47+
const requestParameters: UpdateRiskAssessmentsSettingsNewDeviceRequestContent = {
48+
remember_for: 10,
49+
};
50+
const operation = riskAssessmentsManager.updateNewDeviceSettings(requestParameters);
51+
const uri = `/risk-assessments/settings/new-device`;
52+
const method = 'patch';
53+
54+
checkMethod({ operation, uri, method });
55+
});
56+
});

0 commit comments

Comments
 (0)