/* tslint:disable */ /* eslint-disable */ /** * Identity Security Cloud API - SOD Violations * Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. * * The version of the OpenAPI document: v1 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { Configuration } from '../configuration'; import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; import globalAxios from 'axios'; // Some imports not used depending on template conditions // @ts-ignore import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; import type { RequestArgs } from './base'; // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base'; /** * An enumeration of the types of DTOs supported within the IdentityNow infrastructure. * @export * @enum {string} */ export const DtoType = { AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG', AccessProfile: 'ACCESS_PROFILE', AccessRequestApproval: 'ACCESS_REQUEST_APPROVAL', Account: 'ACCOUNT', Application: 'APPLICATION', Campaign: 'CAMPAIGN', CampaignFilter: 'CAMPAIGN_FILTER', Certification: 'CERTIFICATION', Cluster: 'CLUSTER', ConnectorSchema: 'CONNECTOR_SCHEMA', Entitlement: 'ENTITLEMENT', GovernanceGroup: 'GOVERNANCE_GROUP', Identity: 'IDENTITY', IdentityProfile: 'IDENTITY_PROFILE', IdentityRequest: 'IDENTITY_REQUEST', MachineIdentity: 'MACHINE_IDENTITY', LifecycleState: 'LIFECYCLE_STATE', PasswordPolicy: 'PASSWORD_POLICY', Role: 'ROLE', Rule: 'RULE', SodPolicy: 'SOD_POLICY', Source: 'SOURCE', Tag: 'TAG', TagCategory: 'TAG_CATEGORY', TaskResult: 'TASK_RESULT', ReportResult: 'REPORT_RESULT', SodViolation: 'SOD_VIOLATION', AccountActivity: 'ACCOUNT_ACTIVITY', Workgroup: 'WORKGROUP' } as const; export type DtoType = typeof DtoType[keyof typeof DtoType]; /** * * @export * @interface ErrorMessageDto */ export interface ErrorMessageDto { /** * The locale for the message text, a BCP 47 language tag. * @type {string} * @memberof ErrorMessageDto */ 'locale'?: string | null; /** * * @type {LocaleOrigin} * @memberof ErrorMessageDto */ 'localeOrigin'?: LocaleOrigin | null; /** * Actual text of the error message in the indicated locale. * @type {string} * @memberof ErrorMessageDto */ 'text'?: string; } /** * * @export * @interface ErrorResponseDto */ export interface ErrorResponseDto { /** * Fine-grained error code providing more detail of the error. * @type {string} * @memberof ErrorResponseDto */ 'detailCode'?: string; /** * Unique tracking id for the error. * @type {string} * @memberof ErrorResponseDto */ 'trackingId'?: string; /** * Generic localized reason for error * @type {Array} * @memberof ErrorResponseDto */ 'messages'?: Array; /** * Plain-text descriptive reasons to provide additional detail to the text provided in the messages field * @type {Array} * @memberof ErrorResponseDto */ 'causes'?: Array; } /** * * @export * @interface ExceptionAccessCriteria */ export interface ExceptionAccessCriteria { /** * * @type {ExceptionCriteria} * @memberof ExceptionAccessCriteria */ 'leftCriteria'?: ExceptionCriteria; /** * * @type {ExceptionCriteria} * @memberof ExceptionAccessCriteria */ 'rightCriteria'?: ExceptionCriteria; } /** * * @export * @interface ExceptionCriteria */ export interface ExceptionCriteria { /** * List of exception criteria. There is a min of 1 and max of 50 items in the list. * @type {Array} * @memberof ExceptionCriteria */ 'criteriaList'?: Array; } /** * Access reference with addition of boolean existing flag to indicate whether the access was extant * @export * @interface ExceptionCriteriaAccess */ export interface ExceptionCriteriaAccess { /** * * @type {DtoType} * @memberof ExceptionCriteriaAccess */ 'type'?: DtoType; /** * ID of the object to which this reference applies * @type {string} * @memberof ExceptionCriteriaAccess */ 'id'?: string; /** * Human-readable display name of the object to which this reference applies * @type {string} * @memberof ExceptionCriteriaAccess */ 'name'?: string; /** * Whether the subject identity already had that access or not * @type {boolean} * @memberof ExceptionCriteriaAccess */ 'existing'?: boolean; } /** * The types of objects supported for SOD violations * @export * @interface ExceptionCriteriaCriteriaListInner */ export interface ExceptionCriteriaCriteriaListInner { /** * The type of object that is referenced * @type {string} * @memberof ExceptionCriteriaCriteriaListInner */ 'type'?: ExceptionCriteriaCriteriaListInnerTypeEnum; /** * ID of the object to which this reference applies * @type {string} * @memberof ExceptionCriteriaCriteriaListInner */ 'id'?: string; /** * Human-readable display name of the object to which this reference applies * @type {string} * @memberof ExceptionCriteriaCriteriaListInner */ 'name'?: string; /** * Whether the subject identity already had that access or not * @type {boolean} * @memberof ExceptionCriteriaCriteriaListInner */ 'existing'?: boolean; } export const ExceptionCriteriaCriteriaListInnerTypeEnum = { Entitlement: 'ENTITLEMENT' } as const; export type ExceptionCriteriaCriteriaListInnerTypeEnum = typeof ExceptionCriteriaCriteriaListInnerTypeEnum[keyof typeof ExceptionCriteriaCriteriaListInnerTypeEnum]; /** * An identity with a set of access to be added * @export * @interface IdentityWithNewAccess */ export interface IdentityWithNewAccess { /** * Identity id to be checked. * @type {string} * @memberof IdentityWithNewAccess */ 'identityId': string; /** * The list of entitlements to consider for possible violations in a preventive check. * @type {Array} * @memberof IdentityWithNewAccess */ 'accessRefs': Array; } /** * Entitlement including a specific set of access. * @export * @interface IdentityWithNewAccessAccessRefsInner */ export interface IdentityWithNewAccessAccessRefsInner { /** * Entitlement\'s DTO type. * @type {string} * @memberof IdentityWithNewAccessAccessRefsInner */ 'type'?: IdentityWithNewAccessAccessRefsInnerTypeEnum; /** * Entitlement\'s ID. * @type {string} * @memberof IdentityWithNewAccessAccessRefsInner */ 'id'?: string; } export const IdentityWithNewAccessAccessRefsInnerTypeEnum = { Entitlement: 'ENTITLEMENT' } as const; export type IdentityWithNewAccessAccessRefsInnerTypeEnum = typeof IdentityWithNewAccessAccessRefsInnerTypeEnum[keyof typeof IdentityWithNewAccessAccessRefsInnerTypeEnum]; /** * An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice. * @export * @enum {string} */ export const LocaleOrigin = { Default: 'DEFAULT', Request: 'REQUEST' } as const; export type LocaleOrigin = typeof LocaleOrigin[keyof typeof LocaleOrigin]; /** * SOD policy. * @export * @interface SodPolicyDto2 */ export interface SodPolicyDto2 { /** * SOD policy DTO type. * @type {string} * @memberof SodPolicyDto2 */ 'type'?: SodPolicyDto2TypeEnum; /** * SOD policy ID. * @type {string} * @memberof SodPolicyDto2 */ 'id'?: string; /** * SOD policy display name. * @type {string} * @memberof SodPolicyDto2 */ 'name'?: string; } export const SodPolicyDto2TypeEnum = { SodPolicy: 'SOD_POLICY' } as const; export type SodPolicyDto2TypeEnum = typeof SodPolicyDto2TypeEnum[keyof typeof SodPolicyDto2TypeEnum]; /** * An object referencing an SOD violation check * @export * @interface SodViolationCheck */ export interface SodViolationCheck { /** * The id of the original request * @type {string} * @memberof SodViolationCheck */ 'requestId': string; /** * The date-time when this request was created. * @type {string} * @memberof SodViolationCheck */ 'created'?: string; } /** * * @export * @interface StartPredictSodViolationsV1401Response */ export interface StartPredictSodViolationsV1401Response { /** * A message describing the error * @type {any} * @memberof StartPredictSodViolationsV1401Response */ 'error'?: any; } /** * * @export * @interface StartPredictSodViolationsV1429Response */ export interface StartPredictSodViolationsV1429Response { /** * A message describing the error * @type {any} * @memberof StartPredictSodViolationsV1429Response */ 'message'?: any; } /** * * @export * @interface ViolationContext */ export interface ViolationContext { /** * * @type {ViolationContextPolicy} * @memberof ViolationContext */ 'policy'?: ViolationContextPolicy; /** * * @type {ExceptionAccessCriteria} * @memberof ViolationContext */ 'conflictingAccessCriteria'?: ExceptionAccessCriteria; } /** * The types of objects supported for SOD violations * @export * @interface ViolationContextPolicy */ export interface ViolationContextPolicy { /** * The type of object that is referenced * @type {string} * @memberof ViolationContextPolicy */ 'type'?: ViolationContextPolicyTypeEnum; /** * SOD policy ID. * @type {string} * @memberof ViolationContextPolicy */ 'id'?: string; /** * * @type {string} * @memberof ViolationContextPolicy */ 'name'?: string; } export const ViolationContextPolicyTypeEnum = { Entitlement: 'ENTITLEMENT' } as const; export type ViolationContextPolicyTypeEnum = typeof ViolationContextPolicyTypeEnum[keyof typeof ViolationContextPolicyTypeEnum]; /** * An object containing a listing of the SOD violation reasons detected by this check. * @export * @interface ViolationPrediction */ export interface ViolationPrediction { /** * List of Violation Contexts * @type {Array} * @memberof ViolationPrediction */ 'violationContexts'?: Array; } /** * SODViolationsApi - axios parameter creator * @export */ export const SODViolationsApiAxiosParamCreator = function (configuration?: Configuration) { return { /** * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. * @summary Predict sod violations for identity. * @param {IdentityWithNewAccess} identityWithNewAccess * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ startPredictSodViolationsV1: async (identityWithNewAccess: IdentityWithNewAccess, axiosOptions: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'identityWithNewAccess' is not null or undefined assertParamExists('startPredictSodViolationsV1', 'identityWithNewAccess', identityWithNewAccess) const localVarPath = `/sod-violations/v1/predict`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; if (configuration) { baseOptions = configuration.baseOptions; } const localVarRequestOptions = { method: 'POST', ...baseOptions, ...axiosOptions}; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...axiosOptions.headers}; localVarRequestOptions.data = serializeDataIfNeeded(identityWithNewAccess, localVarRequestOptions, configuration) return { url: toPathString(localVarUrlObj), axiosOptions: localVarRequestOptions, }; }, /** * This API initiates a SOD policy verification asynchronously. * @summary Check sod violations * @param {IdentityWithNewAccess} identityWithNewAccess * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ startViolationCheckV1: async (identityWithNewAccess: IdentityWithNewAccess, axiosOptions: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'identityWithNewAccess' is not null or undefined assertParamExists('startViolationCheckV1', 'identityWithNewAccess', identityWithNewAccess) const localVarPath = `/sod-violations/v1/check`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; if (configuration) { baseOptions = configuration.baseOptions; } const localVarRequestOptions = { method: 'POST', ...baseOptions, ...axiosOptions}; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...axiosOptions.headers}; localVarRequestOptions.data = serializeDataIfNeeded(identityWithNewAccess, localVarRequestOptions, configuration) return { url: toPathString(localVarUrlObj), axiosOptions: localVarRequestOptions, }; }, } }; /** * SODViolationsApi - functional programming interface * @export */ export const SODViolationsApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = SODViolationsApiAxiosParamCreator(configuration) return { /** * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. * @summary Predict sod violations for identity. * @param {IdentityWithNewAccess} identityWithNewAccess * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ async startPredictSodViolationsV1(identityWithNewAccess: IdentityWithNewAccess, axiosOptions?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.startPredictSodViolationsV1(identityWithNewAccess, axiosOptions); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['SODViolationsApi.startPredictSodViolationsV1']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * This API initiates a SOD policy verification asynchronously. * @summary Check sod violations * @param {IdentityWithNewAccess} identityWithNewAccess * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ async startViolationCheckV1(identityWithNewAccess: IdentityWithNewAccess, axiosOptions?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.startViolationCheckV1(identityWithNewAccess, axiosOptions); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['SODViolationsApi.startViolationCheckV1']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } }; /** * SODViolationsApi - factory interface * @export */ export const SODViolationsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { const localVarFp = SODViolationsApiFp(configuration) return { /** * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. * @summary Predict sod violations for identity. * @param {SODViolationsApiStartPredictSodViolationsV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ startPredictSodViolationsV1(requestParameters: SODViolationsApiStartPredictSodViolationsV1Request, axiosOptions?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.startPredictSodViolationsV1(requestParameters.identityWithNewAccess, axiosOptions).then((request) => request(axios, basePath)); }, /** * This API initiates a SOD policy verification asynchronously. * @summary Check sod violations * @param {SODViolationsApiStartViolationCheckV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ startViolationCheckV1(requestParameters: SODViolationsApiStartViolationCheckV1Request, axiosOptions?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.startViolationCheckV1(requestParameters.identityWithNewAccess, axiosOptions).then((request) => request(axios, basePath)); }, }; }; /** * Request parameters for startPredictSodViolationsV1 operation in SODViolationsApi. * @export * @interface SODViolationsApiStartPredictSodViolationsV1Request */ export interface SODViolationsApiStartPredictSodViolationsV1Request { /** * * @type {IdentityWithNewAccess} * @memberof SODViolationsApiStartPredictSodViolationsV1 */ readonly identityWithNewAccess: IdentityWithNewAccess } /** * Request parameters for startViolationCheckV1 operation in SODViolationsApi. * @export * @interface SODViolationsApiStartViolationCheckV1Request */ export interface SODViolationsApiStartViolationCheckV1Request { /** * * @type {IdentityWithNewAccess} * @memberof SODViolationsApiStartViolationCheckV1 */ readonly identityWithNewAccess: IdentityWithNewAccess } /** * SODViolationsApi - object-oriented interface * @export * @class SODViolationsApi * @extends {BaseAPI} */ export class SODViolationsApi extends BaseAPI { /** * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. * @summary Predict sod violations for identity. * @param {SODViolationsApiStartPredictSodViolationsV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} * @memberof SODViolationsApi */ public startPredictSodViolationsV1(requestParameters: SODViolationsApiStartPredictSodViolationsV1Request, axiosOptions?: RawAxiosRequestConfig) { return SODViolationsApiFp(this.configuration).startPredictSodViolationsV1(requestParameters.identityWithNewAccess, axiosOptions).then((request) => request(this.axios, this.basePath)); } /** * This API initiates a SOD policy verification asynchronously. * @summary Check sod violations * @param {SODViolationsApiStartViolationCheckV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} * @memberof SODViolationsApi */ public startViolationCheckV1(requestParameters: SODViolationsApiStartViolationCheckV1Request, axiosOptions?: RawAxiosRequestConfig) { return SODViolationsApiFp(this.configuration).startViolationCheckV1(requestParameters.identityWithNewAccess, axiosOptions).then((request) => request(this.axios, this.basePath)); } }