From 03d88f31b9df69c10656bd6aeedf3cc3576ac47f Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 9 Nov 2023 15:13:05 +0000 Subject: [PATCH] Automated commit 'PLTDP-3876 - Moving RDE API specs from internal to V3 (#1451) * PLTDP-3876: identity details report request body example changed * PLTDP-3876: reports/{id}/cancel endpoint added * PLTDP-3876: added 'reports/result' endpoint * PLTDP-3876: lint errors fixed * PLTDP-3876: spacing issue with examples for tequest bodies fixed * PLTDP-3876: schema and example fixes for response bodies * PLTDP-3876 PLTDP:3876: 'reporting/reports/{taskResultId}/{fileFormat}' endpoint described * PLTDP-3876: added 'reporting/reports/{reportName}/genericReport' description, returns example schema updated * PLTDP-3876: GenericReports schema fixed * PLTDP-3876: unnecessary quates removed from generic reports path description * PLTDP-3876: review changes - payloads changed, generic reports endpoint removed * PLTDP-3876: unused examples removed * PLTDP-3876: removed 'PDF' from examples as this type is going to be deprecated * PLTDP-3876: nullable parameters added for nullable payloads * PLTDP-3876: progress field for TaskResultDetails marked nullable * PLTDP-3876: moved specs to beta till their endpoints will be callable and maintainable * PLTDP-3876: moving api specs from internal beta to v3 * PLTDP-3876: changed security description, default value for path var fixed * PLTDP-3876: schemas updated * PLTDP-3876: schema for TaskResultDetails fixed * PLTDP-3876: missing example added * PLTDP-3876: taskDefName example gated with quotes * PLTDP-3876: cleared beta files after merge with master * PLTDP-3876: quotes restored for ReportDetails. It is the same as in master branch with extended description * PLTDP-3876: review changes applied * PLTDP-3876: mising example for completed query param added * PLTDP-3876: changed type schema for 'completed' param * PLTDP-3876: changed type schema for 'fileFormat' param, enum description should be within type * PLTDP-3876: all necessary run report payloads to be published as public added. * PLTDP-3876: report types moved to enum, all necessary arguments described as oneOf in the schema * PLTDP-3876: description and example for report details added * PLTDP-3876: description and example for reportType added * PLTDP-3876: review changes - titles added for arguments, required added to the arguments properties, boolean properties types fixed * PLTDP-3876: syntax of required fields changed * PLTDP-3876: property for ACCOUNTS arguments schema cleaned up * PLTDP-3876: attempt to fix example for arguments * PLTDP-3876: second attempt to fix example for arguments * PLTDP-3876: third attempt to fix 'cannot assign to this.SetS3Bucket' * PLTDP-3876: most of proposed changes done. Need to discuss task result progress * PLTDP-3876: examples updated according to changes * PLTDP-3876: report result status updated * PLTDP-3876: report result reportType fixed * PLTDP-3876: 'setS3Bucket' property renamed to resolve go SDK collision * PLTDP-3876: fixing beta api file * PLTDP-3876: fixing beta api file, removed also next line * Merged with master * removed duplicate description key --------- Co-authored-by: Colin McKibben ' by github action: 6813717402 --- idn/beta/schemas/reports/ReportDetails.yaml | 25 ------ idn/beta/schemas/reports/ReportResults.yaml | 48 ----------- .../identities-details-report-details.yaml | 10 --- .../identities-details-report-results.yaml | 10 --- ...identities-details-report-task-result.yaml | 17 ---- .../search-export-report-details.yaml | 21 ----- .../search-export-report-task-result.yaml | 24 ------ idn/beta/schemas/sod/models/Exception.yaml | 1 - idn/sailpoint-api.v3.yaml | 11 +++ idn/{beta => v3}/paths/reports-cancel.yaml | 0 idn/{beta => v3}/paths/reports-get-file.yaml | 18 ++++- idn/{beta => v3}/paths/reports-result.yaml | 29 ++++--- idn/{beta => v3}/paths/reports-run.yaml | 4 +- idn/v3/schemas/reports/ReportDetails.yaml | 32 ++++++++ idn/v3/schemas/reports/ReportResults.yaml | 67 ++++++++++++++++ .../schemas/reports/TaskResultDetails.yaml | 79 ++++++++++--------- .../accounts-export-report-arguments.yaml | 31 ++++++++ .../identities-details-report-arguments.yaml | 26 ++++++ .../identities-report-arguments.yaml | 25 ++++++ ...ofile-identity-error-report-arguments.yaml | 25 ++++++ .../orphan-uncorrelated-report-arguments.yaml | 31 ++++++++ .../search-export-report-arguments.yaml | 65 +++++++++++++++ .../identities-details-report-details.yaml | 6 ++ .../identities-details-report-results.yaml | 11 +++ ...identities-details-report-task-result.yaml | 17 ++++ .../search-export-report-task-result.yaml | 24 ++++++ 26 files changed, 448 insertions(+), 209 deletions(-) delete mode 100644 idn/beta/schemas/reports/ReportDetails.yaml delete mode 100644 idn/beta/schemas/reports/ReportResults.yaml delete mode 100644 idn/beta/schemas/reports/examples/identities-details-report-details.yaml delete mode 100644 idn/beta/schemas/reports/examples/identities-details-report-results.yaml delete mode 100644 idn/beta/schemas/reports/examples/identities-details-report-task-result.yaml delete mode 100644 idn/beta/schemas/reports/examples/search-export-report-details.yaml delete mode 100644 idn/beta/schemas/reports/examples/search-export-report-task-result.yaml rename idn/{beta => v3}/paths/reports-cancel.yaml (100%) rename idn/{beta => v3}/paths/reports-get-file.yaml (81%) rename idn/{beta => v3}/paths/reports-result.yaml (65%) rename idn/{beta => v3}/paths/reports-run.yaml (89%) create mode 100644 idn/v3/schemas/reports/ReportDetails.yaml create mode 100644 idn/v3/schemas/reports/ReportResults.yaml rename idn/{beta => v3}/schemas/reports/TaskResultDetails.yaml (68%) create mode 100644 idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml create mode 100644 idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml create mode 100644 idn/v3/schemas/reports/arguments/identities-report-arguments.yaml create mode 100644 idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml create mode 100644 idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml create mode 100644 idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml create mode 100644 idn/v3/schemas/reports/examples/identities-details-report-details.yaml create mode 100644 idn/v3/schemas/reports/examples/identities-details-report-results.yaml create mode 100644 idn/v3/schemas/reports/examples/identities-details-report-task-result.yaml create mode 100644 idn/v3/schemas/reports/examples/search-export-report-task-result.yaml diff --git a/idn/beta/schemas/reports/ReportDetails.yaml b/idn/beta/schemas/reports/ReportDetails.yaml deleted file mode 100644 index 08c4b838..00000000 --- a/idn/beta/schemas/reports/ReportDetails.yaml +++ /dev/null @@ -1,25 +0,0 @@ -type : object -properties: - name: - type: string - description: >- - Name of the requesting report - example: 'Identities Details Report' - taskDefName: - type: string - description: >- - Name of the task definition which is started to process requesting report - example: 'Identities Details Report' - arguments: - type: object - description: >- - The string-object map(dictionary) with the arguments needed for report processing. - additionalProperties: - type: object - example: { "org": "org name" } - completed: - type: boolean - default: false - description: >- - Current state of the requested report - example: true diff --git a/idn/beta/schemas/reports/ReportResults.yaml b/idn/beta/schemas/reports/ReportResults.yaml deleted file mode 100644 index bb97a425..00000000 --- a/idn/beta/schemas/reports/ReportResults.yaml +++ /dev/null @@ -1,48 +0,0 @@ -type : object -description: >- - Details about report result or current state. -properties: - reportName: - type: string - description: >- - Name of the requesting report - example: 'Identities Details Report' - taskDefName: - type: string - description: >- - Name of the task definition which is started to process requesting report. Usually the same as report name - example: 'Identities Details Report' - id: - type: string - description: >- - Unique task definition identifier. - example: 'a248c16fe22222b2bd49615481311111' - date: - type: integer - format: int64 - description: >- - Report processing start date in legacy long (int64) representation. - example: 1682589075909 - status: - type: string - description: >- - Report current state or result status. - example: 'Success' - duration: - type: integer - format: int64 - description: >- - Report processing time. - example: 342 - rows: - type: integer - format: int64 - description: >- - Report size in rows. - example: 37 - availableFormats: - type: string - nullable: true - description: >- - Report request possible formats. - example: 'CSV' \ No newline at end of file diff --git a/idn/beta/schemas/reports/examples/identities-details-report-details.yaml b/idn/beta/schemas/reports/examples/identities-details-report-details.yaml deleted file mode 100644 index 9932be44..00000000 --- a/idn/beta/schemas/reports/examples/identities-details-report-details.yaml +++ /dev/null @@ -1,10 +0,0 @@ -summary: Identities Details Report -value: - name: 'Identities Details Report' - taskDefName: 'Identities Details Report' - arguments: - reportDefName: 'Identities Details Report' - s3bucket: 'abc-org-data-useast1' - pod: 'def-pod' - org: 'an-org' - completed: false \ No newline at end of file diff --git a/idn/beta/schemas/reports/examples/identities-details-report-results.yaml b/idn/beta/schemas/reports/examples/identities-details-report-results.yaml deleted file mode 100644 index 3b2ff185..00000000 --- a/idn/beta/schemas/reports/examples/identities-details-report-results.yaml +++ /dev/null @@ -1,10 +0,0 @@ -summary: Identities Details Report result. -value: - reportName: 'Identities Details Report' - taskDefName: 'Identities Details Report' - id: '1e01d272b8084c4fa12fcf8fa898102d' - date: 1688643627107 - status: 'Success' - duration: 3681 - rows: 193 - availableFormats: 'CSV' \ No newline at end of file diff --git a/idn/beta/schemas/reports/examples/identities-details-report-task-result.yaml b/idn/beta/schemas/reports/examples/identities-details-report-task-result.yaml deleted file mode 100644 index 452abb14..00000000 --- a/idn/beta/schemas/reports/examples/identities-details-report-task-result.yaml +++ /dev/null @@ -1,17 +0,0 @@ -summary: Identities Details Report task result. -value: - name: 'Identities Details Report' - taskDefName: 'Identities Details Report' - type: 'QUARTZ' - id: 'a248c16fe22222b2bd49615481311111' - created: 1682589075909 - description: 'A detailed view of the identities in the system.' - parentName: 'Audit Report' - launcher: '9832285' - launched: 1682589076909 - completed: 1682589078909 - messages: [] - returns: [] - attributes: - org: 'an-org' - progress: 'Initializing...' \ No newline at end of file diff --git a/idn/beta/schemas/reports/examples/search-export-report-details.yaml b/idn/beta/schemas/reports/examples/search-export-report-details.yaml deleted file mode 100644 index 3d468114..00000000 --- a/idn/beta/schemas/reports/examples/search-export-report-details.yaml +++ /dev/null @@ -1,21 +0,0 @@ -summary: Search Export report -value: - name: 'Search Export' - taskDefName: 'Search Export' - arguments: - reportDefName: 'Search Export' - s3bucket: 'abc-org-data-useast1' - indices: 'identities' - columns: 'displayName,firstName,lastName,email,created,attributes.cloudLifecycleState,tags,access.spread,apps.spread,accounts.spread' - query: '704171' - sort: 'displayName' - queryParams: - columns: 'displayName,firstName,lastName,email,created,attributes.cloudLifecycleState,tags,access.spread,apps.pread,accounts.spread' - indices: 'identities' - ownerId: '95ecba5c54fa439c949aec638ce2a74d' - query: '704171' - sort: 'displayName' - queryHash: '5e12cf79c67d92e23d4d8cb3e974f87d164e86d4a4dd8d32ecf89645cacfd3f2' - pod: 'def-pod' - org: 'an-org' - completed: false diff --git a/idn/beta/schemas/reports/examples/search-export-report-task-result.yaml b/idn/beta/schemas/reports/examples/search-export-report-task-result.yaml deleted file mode 100644 index abac5a30..00000000 --- a/idn/beta/schemas/reports/examples/search-export-report-task-result.yaml +++ /dev/null @@ -1,24 +0,0 @@ -summary: Identities Details Report task result. -value: - name: 'Search Export - 1a82d67377a845f495a1300a2346196b' - taskDefName: 'Identities Details Report' - type: 'QUARTZ' - id: 'a248c16fe22222b2bd49615481311111' - created: 1682589075909 - description: 'Extract query data from ElasticSearch to CSV' - parentName: null - launcher: 'T05293' - launched: null - completed: null - messages: [] - returns: [] - attributes: - queryHash: '5e12cf79c67d92e23d4d8cb3e974f87d164e86d4a48d32ecf89645cacfd3f2' - org: 'an-org' - queryParams: - columns: 'displayName,firstName,lastName,email,created,attributes.cloudLifecycleState,tags,access.spread,apps.pread,accounts.spread' - indices: 'identities' - ownerId: '95ecba5c5444439c999aec638ce2a777' - query: '700007' - sort: 'displayName' - progress: 'Initializing...' \ No newline at end of file diff --git a/idn/beta/schemas/sod/models/Exception.yaml b/idn/beta/schemas/sod/models/Exception.yaml index 6457ed3f..62d96d90 100644 --- a/idn/beta/schemas/sod/models/Exception.yaml +++ b/idn/beta/schemas/sod/models/Exception.yaml @@ -2,7 +2,6 @@ type: object properties: id: type: string - description: The id for this SOD exception nullable: true example: "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde" description: Unique identifier of the SOD exception object diff --git a/idn/sailpoint-api.v3.yaml b/idn/sailpoint-api.v3.yaml index 84329d67..a2864fc7 100644 --- a/idn/sailpoint-api.v3.yaml +++ b/idn/sailpoint-api.v3.yaml @@ -550,6 +550,9 @@ tags: For example, a non-administrator deciding whether to approve another identity's request for access to the Workday application, whose access may be restricted to members of the HR department, would want to know whether the identity is a member of the HR department. If an administrator has used [Update Public Identity Config](https://developer.sailpoint.com/idn/api/v3/update-public-identity-config) to make the "department" attribute public, the approver can see the department and make a decision without requesting any more information. + - name: Reports Data Extraction + description: | + Use this API to implement reports lifecycle managing and monitoring. - name: Requestable Objects description: | Use this API to implement requestable object functionality. @@ -1071,6 +1074,14 @@ paths: $ref: './v3/paths/password-dictionary.yaml' /password-org-config: $ref: './v3/paths/password-org-config.yaml' + /reports/{taskResultId}/result: + $ref: './v3/paths/reports-result.yaml' + /reports/run: + $ref: './v3/paths/reports-run.yaml' + /reports/{id}/cancel: + $ref: './v3/paths/reports-cancel.yaml' + /reports/{taskResultId}: + $ref: './v3/paths/reports-get-file.yaml' /sod-policies: $ref: './v3/paths/sod-policies.yaml' /sod-policies/{id}: diff --git a/idn/beta/paths/reports-cancel.yaml b/idn/v3/paths/reports-cancel.yaml similarity index 100% rename from idn/beta/paths/reports-cancel.yaml rename to idn/v3/paths/reports-cancel.yaml diff --git a/idn/beta/paths/reports-get-file.yaml b/idn/v3/paths/reports-get-file.yaml similarity index 81% rename from idn/beta/paths/reports-get-file.yaml rename to idn/v3/paths/reports-get-file.yaml index a8114750..38acb803 100644 --- a/idn/beta/paths/reports-get-file.yaml +++ b/idn/v3/paths/reports-get-file.yaml @@ -15,13 +15,16 @@ get: required: true description: Unique identifier of the task result which handled report example: ef38f94347e94562b5bb8424a56397d8 - - in: path + - in: query name: fileFormat schema: type: string + enum: + - csv + - pdf required: true description: Output format of the requested report file - example: 'CSV' + example: csv - in: query name: name required: false @@ -29,6 +32,17 @@ get: type: string example: 'Identities Details Report' description: preferred Report file name, by default will be used report name from task result. + - in: query + name: auditable + required: false + schema: + type: boolean + default: false + example: true + description: >- + Enables auditing for current report download. + Will create an audit event and sent it to the REPORT cloud-audit kafka topic. + Event will be created if there is any result present by requested taskResultId. responses: '200': description: Details about running report task. diff --git a/idn/beta/paths/reports-result.yaml b/idn/v3/paths/reports-result.yaml similarity index 65% rename from idn/beta/paths/reports-result.yaml rename to idn/v3/paths/reports-result.yaml index 8c53f992..aa198ade 100644 --- a/idn/beta/paths/reports-result.yaml +++ b/idn/v3/paths/reports-result.yaml @@ -1,22 +1,29 @@ -post: +get: tags: - Reports Data Extraction description: >- Get the report results for a report that was run or is running. Returns empty report result in case there are no active task definitions with used in payload task definition name. - operationId: showReportResult + operationId: getReportResult summary: "Get Report Result" security: - UserContextAuth: [sp:report-result:read] - requestBody: - content: - application/json: - schema: - $ref: '../schemas/reports/ReportDetails.yaml' - examples: - identityDetailsReport: - $ref: '../schemas/reports/examples/identities-details-report-details.yaml' - required: true + parameters: + - in: path + name: taskResultId + schema: + type: string + required: true + description: Unique identifier of the task result which handled report + example: ef38f94347e94562b5bb8424a56397d8 + - in: query + name: completed + schema: + type: boolean + default: false + required: false + description: state of task result to apply ordering when results are fetching from the DB + example: true responses: '200': description: Details about report that was run or is running. diff --git a/idn/beta/paths/reports-run.yaml b/idn/v3/paths/reports-run.yaml similarity index 89% rename from idn/beta/paths/reports-run.yaml rename to idn/v3/paths/reports-run.yaml index 4e3df994..cc64d9ba 100644 --- a/idn/beta/paths/reports-run.yaml +++ b/idn/v3/paths/reports-run.yaml @@ -14,10 +14,8 @@ post: schema: $ref: '../schemas/reports/ReportDetails.yaml' examples: - identityDetailsReport: + Identities Details Report: $ref: '../schemas/reports/examples/identities-details-report-details.yaml' - searchExportReport: - $ref: '../schemas/reports/examples/search-export-report-details.yaml' required: true responses: '200': diff --git a/idn/v3/schemas/reports/ReportDetails.yaml b/idn/v3/schemas/reports/ReportDetails.yaml new file mode 100644 index 00000000..03fb7027 --- /dev/null +++ b/idn/v3/schemas/reports/ReportDetails.yaml @@ -0,0 +1,32 @@ +type: object +description: >- + Details about report to be processed. +properties: + reportType: + type: string + enum: + - ACCOUNTS + - IDENTITIES_DETAILS + - IDENTITIES + - IDENTITY_PROFILE_IDENTITY_ERROR + - ORPHAN_IDENTITIES + - SEARCH_EXPORT + - UNCORRELATED_ACCOUNTS + description: >- + Use this property to define what report should be processed in the RDE service. + example: IDENTITIES_DETAILS + arguments: + oneOf: + - $ref: '../reports/arguments/accounts-export-report-arguments.yaml' + - $ref: '../reports/arguments/identities-details-report-arguments.yaml' + - $ref: '../reports/arguments/identities-report-arguments.yaml' + - $ref: '../reports/arguments/identity-profile-identity-error-report-arguments.yaml' + - $ref: '../reports/arguments/orphan-uncorrelated-report-arguments.yaml' + - $ref: '../reports/arguments/search-export-report-arguments.yaml' + example: { + "application": "2c9180897e7742b2017e781782f705b9", + "sourceName": "DataScienceWorkday", + "defaultS3Bucket": true + } + description: >- + The string-object map(dictionary) with the arguments needed for report processing. \ No newline at end of file diff --git a/idn/v3/schemas/reports/ReportResults.yaml b/idn/v3/schemas/reports/ReportResults.yaml new file mode 100644 index 00000000..3435306e --- /dev/null +++ b/idn/v3/schemas/reports/ReportResults.yaml @@ -0,0 +1,67 @@ +type : object +description: >- + Details about report result or current state. +properties: + reportType: + type: string + enum: + - ACCOUNTS + - IDENTITIES_DETAILS + - IDENTITIES + - IDENTITY_PROFILE_IDENTITY_ERROR + - ORPHAN_IDENTITIES + - SEARCH_EXPORT + - UNCORRELATED_ACCOUNTS + description: >- + Use this property to define what report should be processed in the RDE service. + example: IDENTITIES_DETAILS + taskDefName: + type: string + description: >- + Name of the task definition which is started to process requesting report. Usually the same as report name + example: Identities Details Report + id: + type: string + description: >- + Unique task definition identifier. + example: a248c16fe22222b2bd49615481311111 + created: + type: string + description: >- + Report processing start date + format: date-time + example: '2020-09-07T42:14:00.364Z' + status: + type: string + enum: + - SUCCESS + - FAILURE + - WARNING + - TERMINATED + description: >- + Report current state or result status. + example: SUCCESS + duration: + type: integer + format: int64 + description: >- + Report processing time in ms. + example: 342 + rows: + type: integer + format: int64 + description: >- + Report size in rows. + example: 37 + availableFormats: + type: array + items: + type: string + enum: + - CSV + - PDF + description: >- + Output report file formats. This are formats for calling get endpoint as a query parameter 'fileFormat'. + In case report won't have this argument there will be ['CSV', 'PDF'] as default. + example: + - CSV \ No newline at end of file diff --git a/idn/beta/schemas/reports/TaskResultDetails.yaml b/idn/v3/schemas/reports/TaskResultDetails.yaml similarity index 68% rename from idn/beta/schemas/reports/TaskResultDetails.yaml rename to idn/v3/schemas/reports/TaskResultDetails.yaml index 66d047ed..312db664 100644 --- a/idn/beta/schemas/reports/TaskResultDetails.yaml +++ b/idn/v3/schemas/reports/TaskResultDetails.yaml @@ -12,65 +12,72 @@ properties: description: >- Type of the job or task underlying in the report processing. It could be a quartz task, QPOC or MENTOS jobs or a refresh/sync task. - example: 'MENTOS' + example: MENTOS id: type: string description: >- Unique task definition identifier. - example: 'a248c16fe22222b2bd49615481311111' - name: - type: string + example: a248c16fe22222b2bd49615481311111 + reportType: + enum: + - ACCOUNTS + - IDENTITIES_DETAILS + - IDENTITIES + - IDENTITY_PROFILE_IDENTITY_ERROR + - ORPHAN_IDENTITIES + - SEARCH_EXPORT + - UNCORRELATED_ACCOUNTS description: >- - Name of the requesting report. - example: 'Identities Details Report' + Use this property to define what report should be processed in the RDE service. + example: IDENTITIES_DETAILS description: type: string description: >- Description of the report purpose and/or contents. - example: 'A detailed view of the identities in the system.' + example: A detailed view of the identities in the system. parentName: type: string nullable: true description: >- Name of the parent task/report if exists. - example: 'Audit Report' + example: Audit Report launcher: type: string description: >- Name of the report processing initiator. - example: 'cloudadmin' + example: cloudadmin created: - type: integer - format: int64 + type: string description: >- - Report creation date in legacy long (int64) representation. - example: 1688633986104 + Report creation date + format: date-time + example: '2020-09-07T42:14:00.364Z' launched: - type: integer + type: string nullable: true - format: int64 + format: date-time description: >- - Report start date in legacy long (int64) representation. - example: 1688633988104 + Report start date + example: '2020-09-07T42:14:00.521Z' completed: - type: integer + type: string nullable: true - format: int64 + format: date-time description: >- - Report completion date in legacy long (int64) representation. - example: 1688633989504 + Report completion date + example: '2020-09-07T42:14:01.137Z' completionStatus: type: string nullable: true enum: - - Success - - Warning - - Error - - Terminated - - TempError + - SUCCESS + - WARNING + - ERROR + - TERMINATED + - TEMP_ERROR description: >- Report completion status. - example: 'Success' + example: Success messages: type: array description: >- @@ -85,10 +92,10 @@ properties: description: >- Type of the message. enum: - - Info - - Warn - - Error - example: 'Warn' + - INFO + - WARN + - ERROR + example: WARN error: type: boolean default: false @@ -105,12 +112,12 @@ properties: type: string description: >- Message string identifier. - example: 'The following account(s) failed to correlate: A,B,C' + example: "The following account(s) failed to correlate: A,B,C" localizedText: type: string description: >- Message context with the locale based language. - example: 'The following account(s) failed to correlate: A,B,C' + example: "The following account(s) failed to correlate: A,B,C" returns: type: array description: >- @@ -133,14 +140,12 @@ properties: type: object description: >- Extra attributes map(dictionary) needed for the report. - example: - org: 'an-org' - pod: 'the-pod' additionalProperties: type: object + example: {"org": "an-org"} progress: type: string nullable: true description: >- Current report state. - example: 'Initializing...' \ No newline at end of file + example: Initializing... \ No newline at end of file diff --git a/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml b/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml new file mode 100644 index 00000000..8720968b --- /dev/null +++ b/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml @@ -0,0 +1,31 @@ +title: ACCOUNTS +type: object +description: >- + Arguments for Account Export (ACCOUNTS) +required: + - application + - sourceName + - defaultS3Bucket +properties: + application: + type: string + description: >- + Id of the authoritative source to export related accounts e.g. identities + example: 2c9180897eSourceIde781782f705b9 + sourceName: + type: string + description: >- + Name of the authoritative source for accounts export + example: DataScienceSourceName + defaultS3Bucket: + type: boolean + description: >- + Use it to set default s3 bucket where generated report will be saved. + In case this argument is false and 's3Bucket' argument is null or absent there will be default + s3Bucket assigned to the report. + example: true + s3Bucket: + type: string + description: >- + If you want to be specific you could use this argument with defaultS3Bucket = false. + example: the-dev-bucket \ No newline at end of file diff --git a/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml b/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml new file mode 100644 index 00000000..dbf5e90b --- /dev/null +++ b/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml @@ -0,0 +1,26 @@ +title: IDENTITIES_DETAILS +type: object +description: >- + Arguments for Identities details report (IDENTITIES_DETAILS) +required: + - defaultS3Bucket + - correlatedOnly +properties: + correlatedOnly: + type: boolean + description: >- + Boolean FLAG to specify if only correlated identities should be used in report processing + default: false + example: true + defaultS3Bucket: + type: boolean + description: >- + Use it to set default s3 bucket where generated report will be saved. + In case this argument is false and 's3Bucket' argument is null or absent there will be default + s3Bucket assigned to the report. + example: true + s3Bucket: + type: string + description: >- + If you want to be specific you could use this argument with defaultS3Bucket = false. + example: the-dev-bucket diff --git a/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml b/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml new file mode 100644 index 00000000..9778fb8d --- /dev/null +++ b/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml @@ -0,0 +1,25 @@ +title: IDENTITIES +type: object +description: >- + Arguments for Identities report (IDENTITIES) +required: + - defaultS3Bucket +properties: + correlatedOnly: + type: boolean + description: >- + Boolean FLAG to specify if only correlated identities should be used in report processing + default: false + example: true + defaultS3Bucket: + type: boolean + description: >- + Use it to set default s3 bucket where generated report will be saved. + In case this argument is false and 's3Bucket' argument is null or absent there will be default + s3Bucket assigned to the report. + example: true + s3Bucket: + type: string + description: >- + If you want to be specific you could use this argument with defaultS3Bucket = false. + example: the-dev-bucket diff --git a/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml b/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml new file mode 100644 index 00000000..622acec9 --- /dev/null +++ b/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml @@ -0,0 +1,25 @@ +title: IDENTITY_PROFILE_IDENTITY_ERROR +type: object +description: >- + Arguments for Identity Profile Identity Error report (IDENTITY_PROFILE_IDENTITY_ERROR) +required: + - authoritativeSource + - defaultS3Bucket +properties: + authoritativeSource: + type: string + description: >- + Source Id to be checked on errors of identity profiles aggregation + example: 1234sourceId5678902 + defaultS3Bucket: + type: boolean + description: >- + Use it to set default s3 bucket where generated report will be saved. + In case this argument is false and 's3Bucket' argument is null or absent there will be default + s3Bucket assigned to the report. + example: true + s3Bucket: + type: string + description: >- + If you want to be specific you could use this argument with defaultS3Bucket = false. + example: the-dev-bucket \ No newline at end of file diff --git a/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml b/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml new file mode 100644 index 00000000..5834620a --- /dev/null +++ b/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml @@ -0,0 +1,31 @@ +title: ORPHAN_IDENTITIES & UNCORRELATED_ACCOUNTS +type: object +description: >- + Arguments for Orphan Identities report (ORPHAN_IDENTITIES) and Uncorrelated Accounts report (UNCORRELATED_ACCOUNTS) +required: + - defaultS3Bucket +properties: + selectedFormats: + type: array + items: + type: string + enum: + - CSV + - PDF + description: >- + Output report file formats. This are formats for calling get endpoint as a query parameter 'fileFormat'. + In case report won't have this argument there will be ['CSV', 'PDF'] as default. + example: + - CSV + defaultS3Bucket: + type: boolean + description: >- + Use it to set default s3 bucket where generated report will be saved. + In case this argument is false and 's3Bucket' argument is null or absent there will be default + s3Bucket assigned to the report. + example: true + s3Bucket: + type: string + description: >- + If you want to be specific you could use this argument with defaultS3Bucket = false. + example: the-dev-bucket diff --git a/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml b/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml new file mode 100644 index 00000000..dee344ba --- /dev/null +++ b/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml @@ -0,0 +1,65 @@ +title: SEARCH_EXPORT +type: object +description: >- + Arguments for Search Export report (SEARCH_EXPORT) +required: + - query + - defaultS3Bucket +properties: + indices: + description: >- + The names of the Elasticsearch indices in which to search. If none are provided, then all indices will be searched. + externalDocs: + description: Learn more about search indices here. + url: https://documentation.sailpoint.com/saas/help/search/searchable-fields.html + type: array + items: + $ref: '../../search/Index.yaml' + example: + - entitlements + filters: + description: >- + The filters to be applied for each filtered field name. + type: object + additionalProperties: + $ref: '../../filter/Filter.yaml' + example: + source.id: + type: 'TERMS' + terms: + - '2c9180897termsId780bd2920576' + source.name.exact: + type: 'TERMS' + terms: + - 'IdentityNow' + exclude: true + query: + $ref: '../../search/Query.yaml' + includeNested: + description: >- + Indicates whether nested objects from returned search results should be included. + type: boolean + default: true + example: true + sort: + description: >- + The fields to be used to sort the search results. + Use + or - to specify the sort direction. + type: array + items: + type: string + example: + - 'displayName' + - '+id' + defaultS3Bucket: + type: boolean + description: >- + Use it to set default s3 bucket where generated report will be saved. + In case this argument is false and 's3Bucket' argument is null or absent there will be default + s3Bucket assigned to the report. + example: true + s3Bucket: + type: string + description: >- + If you want to be specific you could use this argument with defaultS3Bucket = false. + example: the-dev-bucket \ No newline at end of file diff --git a/idn/v3/schemas/reports/examples/identities-details-report-details.yaml b/idn/v3/schemas/reports/examples/identities-details-report-details.yaml new file mode 100644 index 00000000..43eed60f --- /dev/null +++ b/idn/v3/schemas/reports/examples/identities-details-report-details.yaml @@ -0,0 +1,6 @@ +summary: Identities Details report +value: + reportType: IDENTITIES_DETAILS + arguments: + defaultS3Bucket: true + correlatedOnly: true \ No newline at end of file diff --git a/idn/v3/schemas/reports/examples/identities-details-report-results.yaml b/idn/v3/schemas/reports/examples/identities-details-report-results.yaml new file mode 100644 index 00000000..61bb1529 --- /dev/null +++ b/idn/v3/schemas/reports/examples/identities-details-report-results.yaml @@ -0,0 +1,11 @@ +summary: Identities Details Report result. +value: + reportType: IDENTITIES_DETAILS + taskDefName: Identities Details Report + id: 1e01d272b8084c4fa12fcf8fa898102d + created: '2023-09-07T42:14:05.122Z' + status: SUCCESS + duration: 3681 + rows: 193 + availableFormats: + - CSV \ No newline at end of file diff --git a/idn/v3/schemas/reports/examples/identities-details-report-task-result.yaml b/idn/v3/schemas/reports/examples/identities-details-report-task-result.yaml new file mode 100644 index 00000000..09596bb5 --- /dev/null +++ b/idn/v3/schemas/reports/examples/identities-details-report-task-result.yaml @@ -0,0 +1,17 @@ +summary: Identities Details Report task result. +value: + reportType: IDENTITIES_DETAILS + taskDefName: Identities Details Report + type: QUARTZ + id: a248c16fe22222b2bd49615481311111 + created: '2023-09-07T42:14:00.364Z' + description: A detailed view of the identities in the system. + parentName: Audit Report + launcher: '9832285' + launched: '2023-09-07T42:14:00.521Z' + completed: '2023-09-07T42:14:01.137Z' + messages: [] + returns: [] + attributes: + org: an-org + progress: 'Initializing...' \ No newline at end of file diff --git a/idn/v3/schemas/reports/examples/search-export-report-task-result.yaml b/idn/v3/schemas/reports/examples/search-export-report-task-result.yaml new file mode 100644 index 00000000..85f7fdb3 --- /dev/null +++ b/idn/v3/schemas/reports/examples/search-export-report-task-result.yaml @@ -0,0 +1,24 @@ +summary: Identities Details Report task result. +value: + reportType: SEARCH_EXPORT + taskDefName: Search Export + type: QUARTZ + id: a248c16fe22222b2bd49615481311111 + created: '2023-09-07T42:14:11.137Z' + description: Extract query data from ElasticSearch to CSV + parentName: null + launcher: T05293 + launched: '2020-09-07T42:14:11.137Z' + completed: '2020-09-07T42:14:13.451Z' + messages: [] + returns: [] + attributes: + queryHash: 5e12cf79c67d92e23d4d8cb3e974f87d164e86d4a48d32ecf89645cacfd3f2 + org: an-org + queryParams: + columns: displayName,firstName,lastName,email,created,attributes.cloudLifecycleState,tags,access.spread,apps.pread,accounts.spread + indices: identities + ownerId: 95ecba5c5444439c999aec638ce2a777 + query: 700007 + sort: displayName + progress: Initializing... \ No newline at end of file