From fb6a49a69f7b8aa1d16cb901be85b60f2c0d34dc Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 6 Sep 2024 14:32:38 +0000 Subject: [PATCH] Automated commit by github action: 10740227499 --- .../idn/beta/paths/ears-source-app.yaml | 19 +- static/api-specs/idn/sailpoint-api.v2024.yaml | 22 ++ ...ource-app-access-profiles-bulk-remove.yaml | 58 +++++ .../ears-source-app-access-profiles.yaml | 70 ++++++ .../paths/ears-source-app-bulk-update.yaml | 44 ++++ .../idn/v2024/paths/ears-source-app.yaml | 234 ++++++++++++++++++ .../idn/v2024/paths/ears-source-apps-all.yaml | 90 +++++++ .../paths/ears-source-apps-assigned.yaml | 81 ++++++ .../idn/v2024/paths/ears-source-apps.yaml | 130 ++++++++++ .../ears-user-app-available-accounts.yaml | 46 ++++ .../idn/v2024/paths/ears-user-app.yaml | 64 +++++ .../idn/v2024/paths/ears-user-apps-all.yaml | 72 ++++++ .../idn/v2024/paths/ears-user-apps.yaml | 67 +++++ .../schemas/app/AccessProfileDetails.yaml | 128 ++++++++++ .../v2024/schemas/app/AppAccountDetails.yaml | 34 +++ .../idn/v2024/schemas/app/SourceApp.yaml | 94 +++++++ .../app/SourceAppBulkUpdateRequest.yaml | 35 +++ .../v2024/schemas/app/SourceAppCreateDto.yaml | 39 +++ .../v2024/schemas/app/SourceAppPatchDto.yaml | 104 ++++++++ .../idn/v2024/schemas/app/UserApp.yaml | 100 ++++++++ .../idn/v2024/schemas/app/matchTerm.yaml | 40 +++ .../idn/v2024/schemas/app/selector.yaml | 40 +++ 22 files changed, 1595 insertions(+), 16 deletions(-) create mode 100644 static/api-specs/idn/v2024/paths/ears-source-app-access-profiles-bulk-remove.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-source-app-access-profiles.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-source-app-bulk-update.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-source-app.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-source-apps-all.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-source-apps-assigned.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-source-apps.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-user-app-available-accounts.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-user-app.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-user-apps-all.yaml create mode 100644 static/api-specs/idn/v2024/paths/ears-user-apps.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/AccessProfileDetails.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/AppAccountDetails.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/SourceApp.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/SourceAppBulkUpdateRequest.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/SourceAppCreateDto.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/SourceAppPatchDto.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/UserApp.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/matchTerm.yaml create mode 100644 static/api-specs/idn/v2024/schemas/app/selector.yaml diff --git a/static/api-specs/idn/beta/paths/ears-source-app.yaml b/static/api-specs/idn/beta/paths/ears-source-app.yaml index 098d990a476..51031d89842 100644 --- a/static/api-specs/idn/beta/paths/ears-source-app.yaml +++ b/static/api-specs/idn/beta/paths/ears-source-app.yaml @@ -123,26 +123,13 @@ patch: "value": "source app new name" } ] - Add access profiles: - description: Add one or more access profiles to the end of the list + Add access profile: + description: Add one access profile to the existing list value: [ { "op": "add", - "path": "/accessProfiles", - "value": [ - "2c9180857725c14301772a93bb77242d", - "c9575abb5e3a4e3db82b2f989a738aa2" - ] - } - ] - Insert access profile: - description: Add an access profile at the beginning of the access profile list - value: - [ - { - "op": "add", - "path": "/accessProfiles/0", + "path": "/accessProfiles/-", "value": "2c9180857725c14301772a93bb77242d" } ] diff --git a/static/api-specs/idn/sailpoint-api.v2024.yaml b/static/api-specs/idn/sailpoint-api.v2024.yaml index 135f0ea26fc..d616e4656e7 100644 --- a/static/api-specs/idn/sailpoint-api.v2024.yaml +++ b/static/api-specs/idn/sailpoint-api.v2024.yaml @@ -2004,6 +2004,28 @@ paths: $ref: "./v3/paths/manual-discover-applications.yaml" /vendor-connector-mappings: $ref: "./v3/paths/vendor-connector-mappings.yaml" + /source-apps/{id}: + $ref: './v2024/paths/ears-source-app.yaml' + /source-apps/bulk-update: + $ref: './v2024/paths/ears-source-app-bulk-update.yaml' + /source-apps/assigned: + $ref: './v2024/paths/ears-source-apps-assigned.yaml' + /source-apps: + $ref: './v2024/paths/ears-source-apps.yaml' + /source-apps/all: + $ref: './v2024/paths/ears-source-apps-all.yaml' + /source-apps/{id}/access-profiles: + $ref: './v2024/paths/ears-source-app-access-profiles.yaml' + /source-apps/{id}/access-profiles/bulk-remove: + $ref: './v2024/paths/ears-source-app-access-profiles-bulk-remove.yaml' + /user-apps/{id}: + $ref: './v2024/paths/ears-user-app.yaml' + /user-apps/{id}/available-accounts: + $ref: './v2024/paths/ears-user-app-available-accounts.yaml' + /user-apps: + $ref: './v2024/paths/ears-user-apps.yaml' + /user-apps/all: + $ref: './v2024/paths/ears-user-apps-all.yaml' security: - UserContextAuth: [] components: diff --git a/static/api-specs/idn/v2024/paths/ears-source-app-access-profiles-bulk-remove.yaml b/static/api-specs/idn/v2024/paths/ears-source-app-access-profiles-bulk-remove.yaml new file mode 100644 index 00000000000..bf491979a7e --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-app-access-profiles-bulk-remove.yaml @@ -0,0 +1,58 @@ +post: + operationId: deleteAccessProfilesFromSourceAppByBulk + tags: + - Apps + summary: Bulk remove access profiles from the specified source app + security: + - UserContextAuth: [idn:app-roles:manage] + description: >- + This API returns the final list of access profiles for the specified source app after removing + parameters: + - name: id + in: path + description: ID of the source app + required: true + schema: + type: string + example: 2c91808a7813090a017814121e121518 + - $ref: '../../v3/parameters/limit.yaml' + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: string + description: List of access profile IDs for removal + example: [ + "c9575abb5e3a4e3db82b2f989a738aa2", + "c9dc28e148a24d65b3ccb5fb8ca5ddd9" + ] + responses: + '200': + description: The final list of access profiles for the specified source app + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/AccessProfileDetails.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v2024/paths/ears-source-app-access-profiles.yaml b/static/api-specs/idn/v2024/paths/ears-source-app-access-profiles.yaml new file mode 100644 index 00000000000..56658972653 --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-app-access-profiles.yaml @@ -0,0 +1,70 @@ +get: + operationId: listAccessProfilesForSourceApp + tags: + - Apps + summary: List access profiles for the specified source app + security: + - UserContextAuth: [idn:app-roles:manage] + description: >- + This API returns the list of access profiles for the specified source app + parameters: + - name: id + in: path + description: ID of the source app + required: true + schema: + type: string + example: 2c91808a7813090a017814121e121518 + - $ref: '../../v3/parameters/limit.yaml' + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq, in* + + + **name**: *eq, in* + + + **created**: *gt, lt, ge, le* + + + **modified**: *gt, lt, ge, le* + example: name eq "developer access profile" + required: false + style: form + explode: true + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of access profiles for the specified source app + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/AccessProfileDetails.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v2024/paths/ears-source-app-bulk-update.yaml b/static/api-specs/idn/v2024/paths/ears-source-app-bulk-update.yaml new file mode 100644 index 00000000000..eea612dc1ad --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-app-bulk-update.yaml @@ -0,0 +1,44 @@ +post: + operationId: updateSourceAppsInBulk + tags: + - Apps + summary: Bulk update source apps + description: >- + This API updates source apps using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. It can update up to 50 source apps in a batch. + + The following fields can be updated: + **name**, **description**, **enabled**, **owner**, **provisionRequestEnabled**, **appCenterEnabled**, **accountSource**, + **matchAllAccounts**, and **accessProfiles**. + + Name, description and owner can't be empty or null. + security: + - UserContextAuth: [ idn:app-roles:manage ] + parameters: + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + requestBody: + content: + application/json: + schema: + $ref: '../schemas/app/SourceAppBulkUpdateRequest.yaml' + responses: + '204': + $ref: "../../v3/responses/204.yaml" + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v2024/paths/ears-source-app.yaml b/static/api-specs/idn/v2024/paths/ears-source-app.yaml new file mode 100644 index 00000000000..e54a4fccc8a --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-app.yaml @@ -0,0 +1,234 @@ +get: + operationId: getSourceApp + tags: + - Apps + summary: Get source app by ID + description: >- + This API returns a source app by its ID. + security: + - UserContextAuth: [idn:app-roles:read] + parameters: + - name: id + in: path + description: ID of the source app + required: true + schema: + type: string + example: 2c91808a7813090a017814121e121518 + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: Responds with the source app. + content: + application/json: + schema: + $ref: '../schemas/app/SourceApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' +patch: + operationId: patchSourceApp + tags: + - Apps + summary: Patch source app by ID + description: >- + This API updates an existing source app using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + + The following fields are patchable: + **name**, **description**, **enabled**, **owner**, **provisionRequestEnabled**, **appCenterEnabled**, **accountSource**, + **matchAllAccounts** and **accessProfiles**. + + Name, description and owner can't be empty or null. + security: + - UserContextAuth: [idn:app-roles:manage] + parameters: + - name: id + in: path + description: ID of the source app to patch + required: true + schema: + type: string + example: 2c91808a7813090a017814121e121518 + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + requestBody: + content: + application/json-patch+json: + schema: + type: array + items: + $ref: '../../beta/schemas/JsonPatchOperation.yaml' + example: [ + { + "op": "replace", + "path": "/enabled", + "value": true + } + ] + examples: + Make an app enabled and matchAllAccounts in one call: + description: This example shows how multiple fields may be updated with a single patch call. + value: + [ + { + "op": "replace", + "path": "/enabled", + "value": true + }, + { + "op": "replace", + "path": "/matchAllAccounts", + "value": true + } + ] + Replace an owner for an source app: + description: >- + This example shows how to use patch to replace the source app's owner by replacing the + owner's info. + value: + [ + { + "op": "replace", + "path": "/owner", + "value": { + "id": "2c9180858315595501831958427e5424" + } + } + ] + Update the description for the source app: + description: >- + This example shows how to use patch to update a description for the source app. + value: + [ + { + "op": "replace", + "path": "/description", + "value": "new description for the source app" + } + ] + Update the name for the source app: + description: >- + This example shows how to use patch to update the source app's name. + value: + [ + { + "op": "replace", + "path": "/name", + "value": "source app new name" + } + ] + Add access profile: + description: Add one access profile to the existing list + value: + [ + { + "op": "add", + "path": "/accessProfiles/-", + "value": "2c9180857725c14301772a93bb77242d" + } + ] + Replace access profiles: + description: Replace all access profiles with a new list of access profiles + value: + [ + { + "op": "replace", + "path": "/accessProfiles", + "value": [ + "2c9180857725c14301772a93bb77242d", + "c9575abb5e3a4e3db82b2f989a738aa2" + ] + } + ] + Remove access profile: + description: Remove the first access profile in the list + value: + [ + { + "op": "remove", + "path": "/accessProfiles/0" + } + ] + responses: + '200': + description: Responds with the source app as updated. + content: + application/json: + schema: + $ref: '../schemas/app/SourceAppPatchDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' +delete: + operationId: deleteSourceApp + security: + - UserContextAuth: [idn:app-roles:manage, idn:app-roles:delete] + tags: + - Apps + summary: Delete source app by ID + description: >- + Use this API to delete a specific source app + parameters: + - in: path + name: id + schema: + type: string + required: true + description: source app ID. + example: 2c9180835d191a86015d28455b4a2329 + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: Responds with the source app as deleted. + content: + application/json: + schema: + $ref: '../schemas/app/SourceApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v2024/paths/ears-source-apps-all.yaml b/static/api-specs/idn/v2024/paths/ears-source-apps-all.yaml new file mode 100644 index 00000000000..b1ae66d6f6d --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-apps-all.yaml @@ -0,0 +1,90 @@ +get: + operationId: listAllSourceApp + tags: + - Apps + summary: List all source apps + security: + - UserContextAuth: [idn:app-roles:manage] + description: >- + This API returns the list of all source apps for the org. + + + A token with ORG_ADMIN authority is required to call this API. + parameters: + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/count.yaml' + - in: query + name: sorters + schema: + type: string + format: comma-separated + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **id, name, created, modified, owner.id, accountSource.id** + example: name,-modified + required: false + style: form + explode: true + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq, in* + + + **name**: *eq, in, co, sw* + + + **created**: *gt, lt, ge, le* + + + **modified**: *gt, lt, ge, le* + + + **owner.id**: *eq, in* + + + **accountSource.id**: *eq, in* + + + **enabled**: *eq* + example: enabled eq true + required: false + style: form + explode: true + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of source apps + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/SourceApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v2024/paths/ears-source-apps-assigned.yaml b/static/api-specs/idn/v2024/paths/ears-source-apps-assigned.yaml new file mode 100644 index 00000000000..2ee6b0dd321 --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-apps-assigned.yaml @@ -0,0 +1,81 @@ +get: + operationId: listAssignedSourceApp + tags: + - Apps + summary: List assigned source apps + security: + - UserContextAuth: [idn:app-roles:read] + description: >- + This API returns the list of source apps assigned for logged in user. + parameters: + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/count.yaml' + - in: query + name: sorters + schema: + type: string + format: comma-separated + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **id, name, created, modified, accountSource.id** + example: name,-modified + required: false + style: form + explode: true + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq, in* + + + **name**: *eq, in, co, sw* + + + **created**: *gt, lt, ge, le* + + + **modified**: *gt, lt, ge, le* + + + **accountSource.id**: *eq, in* + example: name eq "source app name" + required: false + style: form + explode: true + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of source apps + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/SourceApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v2024/paths/ears-source-apps.yaml b/static/api-specs/idn/v2024/paths/ears-source-apps.yaml new file mode 100644 index 00000000000..efc8ac67c4d --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-source-apps.yaml @@ -0,0 +1,130 @@ +get: + operationId: listAvailableSourceApps + tags: + - Apps + summary: List available source apps + security: + - UserContextAuth: [idn:app-roles:read] + description: >- + This API returns the list of source apps available for access request. + parameters: + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/count.yaml' + - in: query + name: sorters + schema: + type: string + format: comma-separated + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **id, name, created, modified, owner.id, accountSource.id** + example: name,-modified + required: false + style: form + explode: true + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq, in* + + + **name**: *eq, in, co, sw* + + + **created**: *gt, lt, ge, le* + + + **modified**: *gt, lt, ge, le* + + + **accountSource.id**: *eq, in* + example: name eq "source app name" + required: false + style: form + explode: true + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of source apps + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/SourceApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' +post: + operationId: createSourceApp + tags: + - Apps + summary: Create source app + description: >- + This endpoint creates a source app using the given source app payload + security: + - UserContextAuth: [idn:app-roles:manage] + parameters: + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + requestBody: + required: true + content: + application/json: + schema: + $ref: '../schemas/app/SourceAppCreateDto.yaml' + example: { + "name": "new app name", + "description": "app description", + "matchAllAccounts": true, + "accountSource": { + "id": "edcb0951812949d085b60cd8bf35bc78" + } + } + responses: + '200': + description: Responds with the source app as created. + content: + application/json: + schema: + $ref: '../schemas/app/SourceApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v2024/paths/ears-user-app-available-accounts.yaml b/static/api-specs/idn/v2024/paths/ears-user-app-available-accounts.yaml new file mode 100644 index 00000000000..4c1fb402262 --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-user-app-available-accounts.yaml @@ -0,0 +1,46 @@ +get: + operationId: listAvailableAccountsForUserApp + tags: + - Apps + summary: List available accounts for user app + security: + - UserContextAuth: [idn:app-roles:read] + description: >- + This API returns the list of available accounts for the specified user app. The user app needs to belong lo logged in user. + parameters: + - name: id + in: path + description: ID of the user app + required: true + schema: + type: string + example: 2c91808a7813090a017814121e121518 + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/count.yaml' + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of available accounts for the specified user app + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/AppAccountDetails.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v2024/paths/ears-user-app.yaml b/static/api-specs/idn/v2024/paths/ears-user-app.yaml new file mode 100644 index 00000000000..903d8daabd7 --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-user-app.yaml @@ -0,0 +1,64 @@ +patch: + operationId: patchUserApp + tags: + - Apps + summary: Patch user app by ID + description: >- + This API updates an existing user app using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + + The following fields are patchable: + **account** + security: + - UserContextAuth: [idn:app-roles:read] + parameters: + - name: id + in: path + description: ID of the user app to patch + required: true + schema: + type: string + example: 2c91808a7813090a017814121e121518 + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + requestBody: + content: + application/json-patch+json: + schema: + type: array + items: + $ref: '../../beta/schemas/JsonPatchOperation.yaml' + example: [ + { + "op": "replace", + "path": "/account", + "value": { + "id": "0891808a7813090a017814121e121518", + "type": "ACCOUNT" + } + } + ] + responses: + '200': + description: Responds with the user app as updated. + content: + application/json: + schema: + $ref: '../schemas/app/UserApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v2024/paths/ears-user-apps-all.yaml b/static/api-specs/idn/v2024/paths/ears-user-apps-all.yaml new file mode 100644 index 00000000000..ba28f2d93ec --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-user-apps-all.yaml @@ -0,0 +1,72 @@ +get: + operationId: listAllUserApps + tags: + - Apps + summary: List all user apps + security: + - UserContextAuth: [idn:app-roles:manage] + description: >- + This API returns the list of all user apps with specified filters. + + This API must be used with **filters** query parameter. + parameters: + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/count.yaml' + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq* + + + **ownerId**: *eq* + + + **ownerName**: *eq, sw* + + + **ownerAlias**: *eq, sw* + + + **accountId**: *eq* + + + **sourceAppId**: *eq* + example: name eq "user app name" + required: true + style: form + explode: true + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of user apps + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/UserApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v2024/paths/ears-user-apps.yaml b/static/api-specs/idn/v2024/paths/ears-user-apps.yaml new file mode 100644 index 00000000000..037f7654879 --- /dev/null +++ b/static/api-specs/idn/v2024/paths/ears-user-apps.yaml @@ -0,0 +1,67 @@ +get: + operationId: listOwnedUserApps + tags: + - Apps + summary: List owned user apps + security: + - UserContextAuth: [idn:app-roles:read] + description: >- + This API returns the list of user apps assigned to logged in user + parameters: + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/count.yaml' + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq* + + + **ownerName**: *eq, sw* + + + **ownerAlias**: *eq, sw* + + + **accountId**: *eq* + + + **sourceAppId**: *eq* + example: name eq "user app name" + required: false + style: form + explode: true + - name: X-SailPoint-Experimental + in: header + description: Use this header to enable this experimental API. + example: true + schema: + type: string + default: true + required: true + responses: + '200': + description: List of user apps + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/app/UserApp.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v2024/schemas/app/AccessProfileDetails.yaml b/static/api-specs/idn/v2024/schemas/app/AccessProfileDetails.yaml new file mode 100644 index 00000000000..083e395ca13 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/AccessProfileDetails.yaml @@ -0,0 +1,128 @@ +type: object +properties: + id: + type: string + description: The ID of the Access Profile + example: 2c91808a7190d06e01719938fcd20792 + name: + type: string + description: Name of the Access Profile + example: Employee-database-read-write + description: + type: string + nullable: true + description: Information about the Access Profile + example: Collection of entitlements to read/write the employee database + created: + type: string + description: Date the Access Profile was created + format: 'date-time' + example: '2021-03-01T22:32:58.104Z' + modified: + type: string + description: Date the Access Profile was last modified. + format: 'date-time' + example: '2021-03-02T20:22:28.104Z' + disabled: + type: boolean + default: true + description: Whether the Access Profile is enabled. + example: true + requestable: + type: boolean + default: false + description: Whether the Access Profile is requestable via access request. + example: true + protected: + type: boolean + default: false + description: Whether the Access Profile is protected. + example: false + ownerId: + type: string + description: The owner ID of the Access Profile + example: 9870808a7190d06e01719938fcd20792 + sourceId: + type: integer + format: int64 + nullable: true + description: The source ID of the Access Profile + example: 10360661 + sourceName: + type: string + description: The source name of the Access Profile + example: AD Source + appId: + type: integer + format: int64 + nullable: true + description: The source app ID of the Access Profile + example: 10360661 + appName: + type: string + nullable: true + description: The source app name of the Access Profile + example: mail app + applicationId: + type: string + description: The id of the application + example: edcb0951812949d085b60cd8bf35bc78 + type: + type: string + description: The type of the access profile + example: source + entitlements: + type: array + items: + type: string + description: List of IDs of entitlements + example: [ + "2c9180857725c14301772a93bb77242d", + "c9dc28e148a24d65b3ccb5fb8ca5ddd9" + ] + entitlementCount: + type: integer + format: int32 + example: 12 + description: The number of entitlements in the access profile + segments: + type: array + items: + type: string + description: List of IDs of segments, if any, to which this Access Profile is assigned. + example: [ + "f7b1b8a3-5fed-4fd4-ad29-82014e137e19", + "29cb6c06-1da8-43ea-8be4-b3125f248f2a" + ] + approvalSchemes: + type: string + description: >- + Comma-separated list of approval schemes. Each approval scheme is one of - + manager - appOwner - sourceOwner - accessProfileOwner - workgroup: + example: accessProfileOwner + revokeRequestApprovalSchemes: + type: string + description: >- + Comma-separated list of revoke request approval schemes. Each approval + scheme is one of - manager - sourceOwner - accessProfileOwner - workgroup: + example: accessProfileOwner + requestCommentsRequired: + type: boolean + default: false + description: Whether the access profile require request comment for access request. + example: true + deniedCommentsRequired: + type: boolean + default: false + description: Whether denied comment is required when access request is denied. + example: true + accountSelector: + type: object + description: How to select account when there are multiple accounts for the user + properties: + selectors: + type: array + nullable: true + items: + $ref: './selector.yaml' + diff --git a/static/api-specs/idn/v2024/schemas/app/AppAccountDetails.yaml b/static/api-specs/idn/v2024/schemas/app/AppAccountDetails.yaml new file mode 100644 index 00000000000..8321eccfa49 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/AppAccountDetails.yaml @@ -0,0 +1,34 @@ +type: object +properties: + appId: + type: string + description: The source app ID + example: fbf4f72280304f1a8bc808fc2a3bcf7b + appDisplayName: + type: string + description: The source app display name + example: AD source app + sourceAccount: + type: object + properties: + id: + type: string + description: The account ID + example: fbf4f72280304f1a8bc808fc2a3bcf7b + nativeIdentity: + type: string + description: The native identity of account + example: CN=Abby Smith,OU=Austin,OU=Americas,OU=Demo,DC=seri,DC=acme,DC=com + displayName: + type: string + description: The display name of account + example: Abby Smith + sourceId: + type: string + description: The source ID of account + example: 10efa58ea3954883b52bf74f489ce8f9 + sourceDisplayName: + type: string + description: The source name of account + example: ODS-AD-SOURCE + diff --git a/static/api-specs/idn/v2024/schemas/app/SourceApp.yaml b/static/api-specs/idn/v2024/schemas/app/SourceApp.yaml new file mode 100644 index 00000000000..fbbce986035 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/SourceApp.yaml @@ -0,0 +1,94 @@ +type: object +properties: + id: + type: string + description: The source app id + example: "2c91808874ff91550175097daaec161c" + cloudAppId: + type: string + description: The deprecated source app id + example: "9854520" + name: + type: string + description: The source app name + example: "my app" + created: + type: string + description: Time when the source app was created + format: 'date-time' + example: "2020-10-08T18:33:52.029Z" + modified: + type: string + description: Time when the source app was last modified + format: 'date-time' + example: "2020-10-08T18:33:52.029Z" + enabled: + type: boolean + default: false + description: True if the source app is enabled + example: true + provisionRequestEnabled: + type: boolean + default: false + description: True if the source app is provision request enabled + example: true + description: + type: string + nullable: false + description: The description of the source app + example: "the source app for engineers" + matchAllAccounts: + type: boolean + default: false + description: True if the source app match all accounts + example: true + appCenterEnabled: + type: boolean + default: true + description: True if the source app is shown in the app center + example: true + accountSource: + type: object + nullable: true + properties: + id: + type: string + description: The source ID + example: 2c9180827ca885d7017ca8ce28a000eb + type: + type: string + description: The source type, will always be "SOURCE" + example: SOURCE + name: + type: string + description: The source name + example: ODS-AD-Source + useForPasswordManagement: + type: boolean + default: false + description: If the source is used for password management + example: ture + passwordPolicies: + type: array + nullable: true + description: The password policies for the source + items: + $ref: '../../../v3/schemas/BaseReferenceDto.yaml' + example: + [ + { + "type": "PASSWORD_POLICY", + "id": "006a072ecc6647f68bba9f4a4ad34649", + "name": "Password Policy 1" + } + ] + owner: + type: object + nullable: true + allOf: + - $ref: '../../../v3/schemas/BaseReferenceDto.yaml' + description: The owner of source app + example: + id: 85d173e7d57e496569df763231d6deb6a + type: IDENTITY + name: John Doe diff --git a/static/api-specs/idn/v2024/schemas/app/SourceAppBulkUpdateRequest.yaml b/static/api-specs/idn/v2024/schemas/app/SourceAppBulkUpdateRequest.yaml new file mode 100644 index 00000000000..2a36227af84 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/SourceAppBulkUpdateRequest.yaml @@ -0,0 +1,35 @@ +type: object +properties: + appIds: + type: array + description: List of source app ids to update + maxItems: 50 + items: + type: string + example: + [ + "2c91808a7624751a01762f19d665220d", + "2c91808a7624751a01762f19d67c220e", + "2c91808a7624751a01762f19d692220f" + ] + jsonPatch: + type: array + items: + $ref: '../../../v3/schemas/JsonPatchOperation.yaml' + description: The JSONPatch payload used to update the source app. + example: + [ + { + "op": "replace", + "path": "/enabled", + "value": false + }, + { + "op": "replace", + "path": "/matchAllAccounts", + "value": false + } + ] +required: + - appIds + - jsonPatch diff --git a/static/api-specs/idn/v2024/schemas/app/SourceAppCreateDto.yaml b/static/api-specs/idn/v2024/schemas/app/SourceAppCreateDto.yaml new file mode 100644 index 00000000000..5ab2190f009 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/SourceAppCreateDto.yaml @@ -0,0 +1,39 @@ +type: object +required: + - name + - description + - accountSource +properties: + name: + type: string + description: The source app name + example: "my app" + description: + type: string + nullable: false + description: The description of the source app + example: "the source app for engineers" + matchAllAccounts: + type: boolean + default: false + description: True if the source app match all accounts + example: true + accountSource: + type: object + required: + - id + properties: + id: + type: string + nullable: false + description: The source ID + example: 2c9180827ca885d7017ca8ce28a000eb + type: + type: string + description: The source type, will always be "SOURCE" + example: SOURCE + name: + type: string + description: The source name + example: ODS-AD-Source + diff --git a/static/api-specs/idn/v2024/schemas/app/SourceAppPatchDto.yaml b/static/api-specs/idn/v2024/schemas/app/SourceAppPatchDto.yaml new file mode 100644 index 00000000000..098ed825ebf --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/SourceAppPatchDto.yaml @@ -0,0 +1,104 @@ +type: object +properties: + id: + type: string + description: The source app id + example: "2c91808874ff91550175097daaec161c" + cloudAppId: + type: string + description: The deprecated source app id + example: "9854520" + name: + type: string + description: The source app name + example: "my app" + created: + type: string + description: Time when the source app was created + format: 'date-time' + example: "2020-10-08T18:33:52.029Z" + modified: + type: string + description: Time when the source app was last modified + format: 'date-time' + example: "2020-10-08T18:33:52.029Z" + enabled: + type: boolean + default: false + description: True if the source app is enabled + example: true + provisionRequestEnabled: + type: boolean + default: false + description: True if the source app is provision request enabled + example: true + description: + type: string + nullable: false + description: The description of the source app + example: "the source app for engineers" + matchAllAccounts: + type: boolean + default: false + description: True if the source app match all accounts + example: true + appCenterEnabled: + type: boolean + default: true + description: True if the source app is shown in the app center + example: true + accessProfiles: + type: array + items: + type: string + nullable: true + description: List of IDs of access profiles + example: [ + "2c9180857725c14301772a93bb77242d", + "c9dc28e148a24d65b3ccb5fb8ca5ddd9" + ] + accountSource: + type: object + nullable: true + properties: + id: + type: string + description: The source ID + example: 2c9180827ca885d7017ca8ce28a000eb + type: + type: string + description: The source type, will always be "SOURCE" + example: SOURCE + name: + type: string + description: The source name + example: ODS-AD-Source + useForPasswordManagement: + type: boolean + default: false + description: If the source is used for password management + example: ture + passwordPolicies: + type: array + nullable: true + description: The password policies for the source + items: + $ref: '../../../v3/schemas/BaseReferenceDto.yaml' + example: + [ + { + "type": "PASSWORD_POLICY", + "id": "006a072ecc6647f68bba9f4a4ad34649", + "name": "Password Policy 1" + } + ] + owner: + type: object + nullable: true + allOf: + - $ref: '../../../v3/schemas/BaseReferenceDto.yaml' + description: The owner of source app + example: + id: 85d173e7d57e496569df763231d6deb6a + type: IDENTITY + name: John Doe diff --git a/static/api-specs/idn/v2024/schemas/app/UserApp.yaml b/static/api-specs/idn/v2024/schemas/app/UserApp.yaml new file mode 100644 index 00000000000..308311269ea --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/UserApp.yaml @@ -0,0 +1,100 @@ +type: object +properties: + id: + type: string + description: The user app id + example: "2c91808874ff91550175097daaec161c" + created: + type: string + description: Time when the user app was created + format: 'date-time' + example: "2020-10-08T18:33:52.029Z" + modified: + type: string + description: Time when the user app was last modified + format: 'date-time' + example: "2020-10-08T18:33:52.029Z" + hasMultipleAccounts: + type: boolean + default: false + description: True if the owner has multiple accounts for the source + example: false + useForPasswordManagement: + type: boolean + default: false + description: True if the source has password feature + example: true + provisionRequestEnabled: + type: boolean + default: false + description: True if the source app related to the user app is provision request enabled + example: true + appCenterEnabled: + type: boolean + default: true + description: True if the source app related to the user app is shown in the app center + example: true + sourceApp: + type: object + properties: + id: + type: string + description: the source app ID + example: "edcb0951812949d085b60cd8bf35bc78" + type: + type: string + description: It will always be "APPLICATION" + example: APPLICATION + name: + type: string + description: the source app name + example: test-app + source: + type: object + properties: + id: + type: string + description: the source ID + example: "9870808a7190d06e01719938fcd20792" + type: + type: string + description: It will always be "SOURCE" + example: SOURCE + name: + type: string + description: the source name + example: test-source + account: + type: object + properties: + id: + type: string + description: the account ID + example: "85d173e7d57e496569df763231d6deb6a" + type: + type: string + description: It will always be "ACCOUNT" + example: ACCOUNT + name: + type: string + description: the account name + example: test account + owner: + type: object + properties: + id: + type: string + description: The identity ID + example: 2c9180827ca885d7017ca8ce28a000eb + type: + type: string + description: It will always be "IDENTITY" + example: IDENTITY + name: + type: string + description: The identity name + example: John + alias: + type: string + description: The identity alias + example: John.Doe diff --git a/static/api-specs/idn/v2024/schemas/app/matchTerm.yaml b/static/api-specs/idn/v2024/schemas/app/matchTerm.yaml new file mode 100644 index 00000000000..523c8a96ff8 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/matchTerm.yaml @@ -0,0 +1,40 @@ +type: object +properties: + name: + type: string + description: The attribute name + example: mail + value: + type: string + description: The attribute value + example: 1234 Albany Dr + op: + type: string + description: The operator between name and value + example: eq + container: + type: boolean + default: false + description: If it is a container or a real match term + example: true + and: + type: boolean + description: If it is AND logical operator for the children match terms + default: false + example: false + children: + type: array + nullable: true + items: + $ref: './matchTerm.yaml' + description: The children under this match term + example: [ + { + "name": "businessCategory", + "value": "Service", + "op": "eq", + "container": false, + "and": false, + "children": null + } + ] diff --git a/static/api-specs/idn/v2024/schemas/app/selector.yaml b/static/api-specs/idn/v2024/schemas/app/selector.yaml new file mode 100644 index 00000000000..497f9328e65 --- /dev/null +++ b/static/api-specs/idn/v2024/schemas/app/selector.yaml @@ -0,0 +1,40 @@ +type: object +properties: + applicationId: + type: string + description: The application id + example: 2c91808874ff91550175097daaec161c" + accountMatchConfig: + type: object + properties: + matchExpression: + type: object + properties: + matchTerms: + type: array + items: + $ref: './matchTerm.yaml' + example: [ + { + "name": "", + "value": "", + "op": null, + "container": true, + "and": false, + "children": [ + { + "name": "businessCategory", + "value": "Service", + "op": "eq", + "container": false, + "and": false, + "children": null + } + ] + } + ] + and: + type: boolean + description: If it is AND operators for match terms + default: true + example: true \ No newline at end of file