Merge branch 'IDTEAM-1.26.0' into 'main'
[ProtonMail-WebClient.git] / packages / shared / lib / api / samlSSO.ts
blobef5d92f255f7af5b0b33f53043abe2619ca4a111
1 import { IDP_TYPE } from '../interfaces';
3 export const getSAMLConfigs = () => ({
4     url: 'core/v4/saml/configs',
5     method: 'GET',
6 });
8 export const getSAMLStaticInfo = () => ({
9     url: 'core/v4/saml/sp/info',
10     method: 'GET',
11 });
13 export const getSAMLEdugainInfo = () => ({
14     url: 'core/v4/saml/edugain/info',
15     method: 'GET',
16 });
18 export const setupSAMLUrl = (data: { DomainID: string; MetadataURL: string }) => ({
19     url: 'core/v4/saml/setup/url',
20     method: 'POST',
21     data,
22 });
24 export const setupSAMLXml = (data: { DomainID: string; XML: string }) => ({
25     url: 'core/v4/saml/setup/xml',
26     method: 'POST',
27     data,
28 });
30 export const setupSAMLFields = (data: {
31     DomainID: string;
32     SSOURL: string;
33     SSOEntityID: string;
34     Certificate: string;
35 }) => ({
36     url: 'core/v4/saml/setup/fields',
37     method: 'POST',
38     data: {
39         ...data,
40         Type: IDP_TYPE.DEFAULT,
41     },
42 });
44 export const setupEdugainSAML = (data: { DomainID: string; SSOEntityID: string; EdugainAffiliations: string[] }) => ({
45     url: 'core/v4/saml/setup/fields',
46     method: 'POST',
47     data: {
48         ...data,
49         Type: IDP_TYPE.EDUGAIN,
51         /**
52          * Dummy values. BE requires something to be set for these values. In the case of edugain, they are ignored.
53          * These should be removed when the BE no longer requires SSOURL and Certificate
54          */
55         SSOURL: 'https://dummy.proton.me',
56         Certificate: 'dummy',
57         // Dummy value end
58     },
59 });
61 export const updateSAMLConfig = (
62     uid: string,
63     data: {
64         DomainID: string;
65         SSOURL: string;
66         SSOEntityID: string;
67         Certificate: string;
68     }
69 ) => ({
70     url: `core/v4/saml/configs/${uid}/fields`,
71     method: 'PUT',
72     data,
73 });
75 export const removeSAMLConfig = (uid: string) => ({
76     url: `core/v4/saml/configs/${uid}/delete`,
77     method: 'PUT',
78 });
80 export const getSCIMInfo = () => ({
81     url: 'core/v4/organizations/scim',
82     method: 'GET',
83 });
85 export const setupSCIM = (data: { Password: string }) => ({
86     url: 'core/v4/organizations/scim',
87     method: 'POST',
88     data,
89 });
91 export const updateSCIM = (data: { State: 1; Password: string } | { State: 0 }) => ({
92     url: 'core/v4/organizations/scim',
93     method: 'PUT',
94     data,
95 });