From 8e9a1cff5d36c0ff18e18ba84985e46de961468f Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 5 Apr 2024 17:45:35 +0000 Subject: [PATCH] Automated commit 'Merge pull request #1613 from sailpoint/amalta/PLTCONFHUB-1547 PLTCONFHUB-1547: Object Mapping documentation' by github action: 8573710240 --- idn/sailpoint-api.v3.yaml | 11 ++ .../object-mapping-bulk-create.yaml | 93 ++++++++++++ .../object-mapping-bulk-update.yaml | 93 ++++++++++++ .../object-mapping-delete.yaml | 43 ++++++ .../configuration-hub/object-mapping.yaml | 134 ++++++++++++++++++ .../ObjectMappingBulkCreateRequest.yaml | 9 ++ .../ObjectMappingBulkCreateResponse.yaml | 7 + .../ObjectMappingBulkPatchRequest.yaml | 30 ++++ .../ObjectMappingBulkPatchResponse.yaml | 7 + .../ObjectMappingRequest.yaml | 56 ++++++++ .../ObjectMappingResponse.yaml | 63 ++++++++ 11 files changed, 546 insertions(+) create mode 100644 idn/v3/paths/configuration-hub/object-mapping-bulk-create.yaml create mode 100644 idn/v3/paths/configuration-hub/object-mapping-bulk-update.yaml create mode 100644 idn/v3/paths/configuration-hub/object-mapping-delete.yaml create mode 100644 idn/v3/paths/configuration-hub/object-mapping.yaml create mode 100644 idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateRequest.yaml create mode 100644 idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateResponse.yaml create mode 100644 idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchRequest.yaml create mode 100644 idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchResponse.yaml create mode 100644 idn/v3/schemas/configuration-hub/ObjectMappingRequest.yaml create mode 100644 idn/v3/schemas/configuration-hub/ObjectMappingResponse.yaml diff --git a/idn/sailpoint-api.v3.yaml b/idn/sailpoint-api.v3.yaml index 4c18ad3..15f2f68 100644 --- a/idn/sailpoint-api.v3.yaml +++ b/idn/sailpoint-api.v3.yaml @@ -324,6 +324,9 @@ tags: Certification summaries provide information about identity certification campaigns such as the identities involved, the number of decisions made, and the access changed. For example, an administrator or designated certification reviewer can examine the Manager Certification campaign to get an overview of how many entitlement decisions are made in that campaign as opposed to role decisions, which identities would be affected by changes to the campaign, and how those identities' access would be affected. + - name: Configuration Hub + description: | + Upload configurations and manage object mappings between tenants. - name: Connectors description: | Use this API to implement connector functionality. @@ -1054,6 +1057,14 @@ paths: $ref: "./v3/paths/certification-task.yaml" /certification-tasks: $ref: "./v3/paths/certification-tasks.yaml" + /configuration-hub/object-mappings/{sourceOrg}: + $ref: './v3/paths/configuration-hub/object-mapping.yaml' + /configuration-hub/object-mappings/{sourceOrg}/{objectMappingId}: + $ref: './v3/paths/configuration-hub/object-mapping-delete.yaml' + /configuration-hub/object-mappings/{sourceOrg}/bulk-create: + $ref: './v3/paths/configuration-hub/object-mapping-bulk-create.yaml' + /configuration-hub/object-mappings/{sourceOrg}/bulk-patch: + $ref: './v3/paths/configuration-hub/object-mapping-bulk-update.yaml' /connectors/{scriptName}: $ref: './v3/paths/connectors.yaml' /connectors/{scriptName}/source-config: diff --git a/idn/v3/paths/configuration-hub/object-mapping-bulk-create.yaml b/idn/v3/paths/configuration-hub/object-mapping-bulk-create.yaml new file mode 100644 index 0000000..3e06477 --- /dev/null +++ b/idn/v3/paths/configuration-hub/object-mapping-bulk-create.yaml @@ -0,0 +1,93 @@ +post: + operationId: createObjectMappings + security: + - UserContextAuth: [sp:config-object-mapping:manage] + tags: + - Configuration Hub + summary: Bulk creates object mappings + description: >- + This creates a set of object mappings (Max 25) between current org and source org. + + The request will need the following security scope: + + - sp:config-object-mapping:manage + parameters: + - in: path + name: sourceOrg + schema: + type: string + required: true + description: The name of the source org. + example: source-org + requestBody: + description: >- + The bulk create object mapping request body. + required: true + content: + application/json: + schema: + $ref: '../../schemas/configuration-hub/ObjectMappingBulkCreateRequest.yaml' + example: + { + "newObjectsMappings": [ + { + "objectType": "SOURCE", + "jsonPath": "$.name", + "sourceValue": "Original SOURCE Name", + "targetValue": "New SOURCE Name", + "enabled": true + }, + { + "objectType": "IDENTITY", + "jsonPath": "$.name", + "sourceValue": "Original IDENTITY Name", + "targetValue": "New IDENTITY Name ", + "enabled": true + } + ] + } + responses: + '200': + description: >- + The created object mapping between current org and source org. + content: + application/json: + schema: + $ref: '../../schemas/configuration-hub/ObjectMappingBulkCreateResponse.yaml' + example: + { + "addedObjects": [ + { + "objectMappingId": "603b1a61-d03d-4ed1-864f-a508fbd1995d", + "objectType": "SOURCE", + "jsonPath": "$.name", + "sourceValue": "Original SOURCE Name", + "targetValue": "New SOURCE Name", + "enabled": true, + "created": "2024-03-25T15:50:41.314Z", + "modified": "2024-03-25T15:50:41.299Z" + }, + { + "objectMappingId": "00bece34-f50d-4227-8878-76f620b5a971", + "objectType": "IDENTITY", + "jsonPath": "$.name", + "sourceValue": "Original IDENTITY Name", + "targetValue": "New IDENTITY Name ", + "enabled": true, + "created": "2024-03-25T15:50:41.316Z", + "modified": "2024-03-25T15:50:41.316Z" + } + ] + } + '400': + $ref: '../../responses/400.yaml' + '401': + $ref: '../../responses/401.yaml' + '403': + $ref: '../../responses/403.yaml' + '404': + $ref: '../../responses/404.yaml' + '429': + $ref: '../../responses/429.yaml' + '500': + $ref: '../../responses/500.yaml' \ No newline at end of file diff --git a/idn/v3/paths/configuration-hub/object-mapping-bulk-update.yaml b/idn/v3/paths/configuration-hub/object-mapping-bulk-update.yaml new file mode 100644 index 0000000..f914ac6 --- /dev/null +++ b/idn/v3/paths/configuration-hub/object-mapping-bulk-update.yaml @@ -0,0 +1,93 @@ +post: + operationId: updateObjectMappings + security: + - UserContextAuth: [sp:config-object-mapping:manage] + tags: + - Configuration Hub + summary: Bulk updates object mappings + description: >- + This updates a set of object mappings, only enabled and targetValue fields can be updated. + + The request will need the following security scope: + + - sp:config-object-mapping:manage + parameters: + - in: path + name: sourceOrg + schema: + type: string + required: true + description: The name of the source org. + example: source-org + requestBody: + description: >- + The object mapping request body. + required: true + content: + application/json: + schema: + $ref: '../../schemas/configuration-hub/ObjectMappingBulkPatchRequest.yaml' + example: + { + "patches": { + "603b1a61-d03d-4ed1-864f-a508fbd1995d": [ + { + "op": "replace", + "path": "/enabled", + "value": true + } + ], + "00bece34-f50d-4227-8878-76f620b5a971": [ + { + "op": "replace", + "path": "/targetValue", + "value": "New Target Value" + } + ] + } + } + responses: + '200': + description: >- + The updated object mappings. + content: + application/json: + schema: + $ref: '../../schemas/configuration-hub/ObjectMappingBulkPatchResponse.yaml' + example: + { + "patchedObjects": [ + { + "objectMappingId": "603b1a61-d03d-4ed1-864f-a508fbd1995d", + "objectType": "SOURCE", + "jsonPath": "$.name", + "sourceValue": "Original SOURCE Name", + "targetValue": "New SOURCE Name", + "enabled": true, + "created": "2024-03-25T15:50:41.314Z", + "modified": "2024-03-25T15:50:41.299Z" + }, + { + "objectMappingId": "00bece34-f50d-4227-8878-76f620b5a971", + "objectType": "IDENTITY", + "jsonPath": "$.name", + "sourceValue": "Original IDENTITY Name", + "targetValue": "New IDENTITY Name ", + "enabled": true, + "created": "2024-03-25T15:50:41.316Z", + "modified": "2024-03-25T15:50:41.316Z" + } + ] + } + '400': + $ref: '../../responses/400.yaml' + '401': + $ref: '../../responses/401.yaml' + '403': + $ref: '../../responses/403.yaml' + '404': + $ref: '../../responses/404.yaml' + '429': + $ref: '../../responses/429.yaml' + '500': + $ref: '../../responses/500.yaml' \ No newline at end of file diff --git a/idn/v3/paths/configuration-hub/object-mapping-delete.yaml b/idn/v3/paths/configuration-hub/object-mapping-delete.yaml new file mode 100644 index 0000000..7f22b4e --- /dev/null +++ b/idn/v3/paths/configuration-hub/object-mapping-delete.yaml @@ -0,0 +1,43 @@ +delete: + operationId: deleteObjectMapping + security: + - UserContextAuth: [sp:config-object-mapping:manage] + tags: + - Configuration Hub + summary: Deletes an object mapping + description: >- + This deletes an existing object mapping. + + The request will need the following security scope: + + - sp:config-object-mapping:manage + parameters: + - in: path + name: sourceOrg + schema: + type: string + required: true + description: The name of the source org. + example: source-org + - in: path + name: objectMappingId + schema: + type: string + required: true + description: The id of the object mapping to be deleted. + example: 3d6e0144-963f-4bd6-8d8d-d77b4e507ce4 + responses: + '204': + $ref: '../../responses/204.yaml' + '400': + $ref: '../../responses/400.yaml' + '401': + $ref: '../../responses/401.yaml' + '403': + $ref: '../../responses/403.yaml' + '404': + $ref: '../../responses/404.yaml' + '429': + $ref: '../../responses/429.yaml' + '500': + $ref: '../../responses/500.yaml' \ No newline at end of file diff --git a/idn/v3/paths/configuration-hub/object-mapping.yaml b/idn/v3/paths/configuration-hub/object-mapping.yaml new file mode 100644 index 0000000..b13e14d --- /dev/null +++ b/idn/v3/paths/configuration-hub/object-mapping.yaml @@ -0,0 +1,134 @@ +get: + operationId: getObjectMappings + security: + - UserContextAuth: [sp:config-object-mapping:read, sp:config-object-mapping:manage] + tags: + - Configuration Hub + summary: Gets list of object mappings + description: >- + This gets a list of existing object mappings between current org and source org. + + The request will need the following security scope: + + - sp:config-object-mapping:read + parameters: + - in: path + name: sourceOrg + schema: + type: string + required: true + description: The name of the source org. + example: source-org + responses: + '200': + description: >- + List of existing object mappings between current org and source org. + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/configuration-hub/ObjectMappingResponse.yaml' + example: + [ + { + "objectMappingId": "3d6e0144-963f-4bd6-8d8d-d77b4e507ce4", + "objectType": "GOVERNANCE_GROUP", + "jsonPath": "$.description", + "sourceValue": "Sample Governance Group", + "targetValue": "Sample Governance Group - Updated", + "enabled": true, + "created": "2024-03-19T23:18:53.732Z", + "modified": "2024-03-19T23:18:53.732Z" + }, + { + "objectMappingId": "e1d5cb80-65e2-4f92-ae2e-9588f61cc4cd", + "objectType": "IDENTITY", + "jsonPath": "$.name", + "sourceValue": "SailPoint Support", + "targetValue": "john.doe", + "enabled": false, + "created": "2024-03-19T23:18:06.238Z", + "modified": "2024-03-19T23:18:06.238Z" + } + ] + '400': + $ref: '../../responses/400.yaml' + '401': + $ref: '../../responses/401.yaml' + '403': + $ref: '../../responses/403.yaml' + '404': + $ref: '../../responses/404.yaml' + '429': + $ref: '../../responses/429.yaml' + '500': + $ref: '../../responses/500.yaml' +post: + operationId: createObjectMapping + security: + - UserContextAuth: [sp:config-object-mapping:manage] + tags: + - Configuration Hub + summary: Creates an object mapping + description: >- + This creates an object mapping between current org and source org. + + The request will need the following security scope: + + - sp:config-object-mapping:manage + parameters: + - in: path + name: sourceOrg + schema: + type: string + required: true + description: The name of the source org. + example: source-org + requestBody: + description: >- + The object mapping request body. + required: true + content: + application/json: + schema: + $ref: '../../schemas/configuration-hub/ObjectMappingRequest.yaml' + example: + { + "objectType": "GOVERNANCE_GROUP", + "jsonPath": "$.description", + "sourceValue": "Sample Governance Group", + "targetValue": "Sample Governance Group - Updated", + "enabled": true + } + responses: + '200': + description: >- + The created object mapping between current org and source org. + content: + application/json: + schema: + $ref: '../../schemas/configuration-hub/ObjectMappingResponse.yaml' + example: + { + "objectMappingId": "3d6e0144-963f-4bd6-8d8d-d77b4e507ce4", + "objectType": "GOVERNANCE_GROUP", + "jsonPath": "$.description", + "sourceValue": "Sample Governance Group", + "targetValue": "Sample Governance Group - Updated", + "enabled": true, + "created": "2024-03-19T23:18:53.732Z", + "modified": "2024-03-19T23:18:53.732Z" + } + '400': + $ref: '../../responses/400.yaml' + '401': + $ref: '../../responses/401.yaml' + '403': + $ref: '../../responses/403.yaml' + '404': + $ref: '../../responses/404.yaml' + '429': + $ref: '../../responses/429.yaml' + '500': + $ref: '../../responses/500.yaml' \ No newline at end of file diff --git a/idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateRequest.yaml b/idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateRequest.yaml new file mode 100644 index 0000000..79ec306 --- /dev/null +++ b/idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateRequest.yaml @@ -0,0 +1,9 @@ +type: object +title: Bulk Create Object Mapping Request +required: + - newObjectMappings +properties: + newObjectMappings: + type: array + items: + $ref: '../../../v3/schemas/configuration-hub/ObjectMappingRequest.yaml' \ No newline at end of file diff --git a/idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateResponse.yaml b/idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateResponse.yaml new file mode 100644 index 0000000..0aa66f8 --- /dev/null +++ b/idn/v3/schemas/configuration-hub/ObjectMappingBulkCreateResponse.yaml @@ -0,0 +1,7 @@ +type: object +title: Bulk Create Object Mapping Response +properties: + addedObjects: + type: array + items: + $ref: '../../../v3/schemas/configuration-hub/ObjectMappingResponse.yaml' \ No newline at end of file diff --git a/idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchRequest.yaml b/idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchRequest.yaml new file mode 100644 index 0000000..f1bc747 --- /dev/null +++ b/idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchRequest.yaml @@ -0,0 +1,30 @@ +type: object +title: Bulk Update Object Mapping Request +required: + - patches +properties: + patches: + description: >- + Map of id of the object mapping to a JsonPatchOperation describing what to patch on that object mapping. + type: object + additionalProperties: + type: array + items: + $ref: '../../schemas/JsonPatchOperation.yaml' + example: + { + "603b1a61-d03d-4ed1-864f-a508fbd1995d": [ + { + "op": "replace", + "path": "/enabled", + "value": true + } + ], + "00bece34-f50d-4227-8878-76f620b5a971": [ + { + "op": "replace", + "path": "/targetValue", + "value": "New Target Value" + } + ] + } diff --git a/idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchResponse.yaml b/idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchResponse.yaml new file mode 100644 index 0000000..bda7d9e --- /dev/null +++ b/idn/v3/schemas/configuration-hub/ObjectMappingBulkPatchResponse.yaml @@ -0,0 +1,7 @@ +type: object +title: Bulk Update Object Mapping Response +properties: + patchedObjects: + type: array + items: + $ref: '../../../v3/schemas/configuration-hub/ObjectMappingResponse.yaml' \ No newline at end of file diff --git a/idn/v3/schemas/configuration-hub/ObjectMappingRequest.yaml b/idn/v3/schemas/configuration-hub/ObjectMappingRequest.yaml new file mode 100644 index 0000000..ddea1e6 --- /dev/null +++ b/idn/v3/schemas/configuration-hub/ObjectMappingRequest.yaml @@ -0,0 +1,56 @@ +type: object +title: Object Mapping Request +required: + - objectType + - jsonPath + - sourceValue + - targetValue +properties: + objectType: + type: string + description: Type of the object the mapping value applies to, must be one from enum + example: IDENTITY + enum: + - ACCESS_PROFILE + - ACCESS_REQUEST_CONFIG + - ATTR_SYNC_SOURCE_CONFIG + - AUTH_ORG + - CAMPAIGN_FILTER + - ENTITLEMENT + - FORM_DEFINITION + - GOVERNANCE_GROUP + - IDENTITY + - IDENTITY_OBJECT_CONFIG + - IDENTITY_PROFILE + - LIFECYCLE_STATE + - NOTIFICATION_TEMPLATE + - PASSWORD_POLICY + - PASSWORD_SYNC_GROUP + - PUBLIC_IDENTITIES_CONFIG + - ROLE + - RULE + - SEGMENT + - SERVICE_DESK_INTEGRATION + - SOD_POLICY + - SOURCE + - TAG + - TRANSFORM + - TRIGGER_SUBSCRIPTION + - WORKFLOW + jsonPath: + type: string + description: JSONPath expression denoting the path within the object where the mapping value should be applied + example: $.name + sourceValue: + type: string + description: Original value at the jsonPath location within the object + example: My Governance Group Name + targetValue: + type: string + description: Value to be assigned at the jsonPath location within the object + example: My New Governance Group Name + enabled: + type: boolean + description: Whether or not this object mapping is enabled + default: false + example: false \ No newline at end of file diff --git a/idn/v3/schemas/configuration-hub/ObjectMappingResponse.yaml b/idn/v3/schemas/configuration-hub/ObjectMappingResponse.yaml new file mode 100644 index 0000000..c15350a --- /dev/null +++ b/idn/v3/schemas/configuration-hub/ObjectMappingResponse.yaml @@ -0,0 +1,63 @@ +type: object +title: Object Mapping Response +properties: + objectMappingId: + type: string + description: Id of the object mapping + example: 3d6e0144-963f-4bd6-8d8d-d77b4e507ce4 + objectType: + type: string + description: Type of the object the mapping value applies to + example: IDENTITY + enum: + - ACCESS_PROFILE + - ACCESS_REQUEST_CONFIG + - ATTR_SYNC_SOURCE_CONFIG + - AUTH_ORG + - CAMPAIGN_FILTER + - ENTITLEMENT + - FORM_DEFINITION + - GOVERNANCE_GROUP + - IDENTITY + - IDENTITY_OBJECT_CONFIG + - IDENTITY_PROFILE + - LIFECYCLE_STATE + - NOTIFICATION_TEMPLATE + - PASSWORD_POLICY + - PASSWORD_SYNC_GROUP + - PUBLIC_IDENTITIES_CONFIG + - ROLE + - RULE + - SEGMENT + - SERVICE_DESK_INTEGRATION + - SOD_POLICY + - SOURCE + - TAG + - TRANSFORM + - TRIGGER_SUBSCRIPTION + - WORKFLOW + jsonPath: + type: string + description: JSONPath expression denoting the path within the object where the mapping value should be applied + example: $.name + sourceValue: + type: string + description: Original value at the jsonPath location within the object + example: My Governance Group Name + targetValue: + type: string + description: Value to be assigned at the jsonPath location within the object + example: My New Governance Group Name + enabled: + type: boolean + description: Whether or not this object mapping is enabled + default: false + example: false + created: + type: string + description: Object mapping creation timestamp + example: 2024-03-19T23:18:53.732Z + modified: + type: string + description: Object mapping latest update timestamp + example: 2024-03-19T23:18:53.732Z \ No newline at end of file