From a97775d8aa55f14125d05a6f23a7d5f67b2a1e7f Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Tue, 17 Jan 2023 20:20:10 +0000 Subject: [PATCH] Automated commit by github action: 3942973180 --- idn/beta/paths/identities.yaml | 99 ++++++++++++++++++++++++ idn/beta/paths/identity.yaml | 134 ++++++++++++++++++++++----------- idn/beta/schemas/Identity.yaml | 116 +++++++++++++--------------- 3 files changed, 239 insertions(+), 110 deletions(-) create mode 100644 idn/beta/paths/identities.yaml diff --git a/idn/beta/paths/identities.yaml b/idn/beta/paths/identities.yaml new file mode 100644 index 0000000..6c8e54a --- /dev/null +++ b/idn/beta/paths/identities.yaml @@ -0,0 +1,99 @@ +get: + operationId: listIdentities + tags: + - Identities + summary: List Identities + description: >- + This API returns a list of identities. + parameters: + - in: query + name: filters + schema: + type: string + required: false + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq, in* + + + **name**: *eq, sw* + + + **alias**: *eq, sw* + + + **firstname**: *eq, sw* + + + **lastname**: *eq, sw* + + + **email**: *eq, sw* + + + **cloudStatus**: *eq* + + + **processingState**: *eq* + + + **correlated**: *eq* + + + **protected**: *eq* + example: id eq "6c9079b270a266a60170a2779fcb0006" or correlated eq false + - in: query + name: sorters + schema: + type: string + format: comma-separated + required: false + 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: **name, alias, cloudStatus** + example: name,-cloudStatus + - in: query + name: defaultFilter + schema: + type: string + enum: [CORRELATED_ONLY, NONE] + default: CORRELATED_ONLY + required: false + description: >- + Adds additional filter to filters query parameter. + + + CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. + + + NONE does not add any and returns all identities that satisfy filters query parameter. + example: NONE + - $ref: "../../v3/parameters/count.yaml" + - $ref: "../../v3/parameters/limit.yaml" + - $ref: "../../v3/parameters/offset.yaml" + responses: + "200": + description: List of identities. + content: + application/json: + schema: + type: array + items: + $ref: "../../beta/schemas/Identity.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/idn/beta/paths/identity.yaml b/idn/beta/paths/identity.yaml index 2872885..9d77598 100644 --- a/idn/beta/paths/identity.yaml +++ b/idn/beta/paths/identity.yaml @@ -1,11 +1,10 @@ head: - operationId: identityExistsById + operationId: identityExists tags: - Identities summary: Check if identity exists description: >- - The API returns successful response if the requested identity exists and not found error if it doesn`t. - A token with ORG_ADMIN authority is required to call this API. + This API returns successful response if the requested identity exists and not found error if it doesn`t. parameters: - in: path name: identityId @@ -15,18 +14,58 @@ head: description: Identity Id example: ef38f94347e94562b5bb8424a56397d8 responses: - '204': + "204": description: If an identity with the passed identityId exists. - '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' + "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" + +get: + operationId: getIdentity + tags: + - Identities + summary: Identity Details + description: >- + This API returns a single identity using the Identity ID. + security: + - bearerAuth: + - "idn:identity:read" + parameters: + - in: path + name: identityId + schema: + type: string + required: true + description: Identity Id + example: ef38f94347e94562b5bb8424a56397d8 + responses: + "200": + description: An identity object + content: + application/json: + schema: + $ref: "../schemas/Identity.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: deleteIdentity @@ -35,7 +74,9 @@ delete: summary: Deletes an identity. description: >- The API returns successful response if the requested identity was deleted. - A token with ORG_ADMIN authority is required to call this API. + security: + - bearerAuth: + - "idn:identity:delete" parameters: - in: path name: identityId @@ -45,25 +86,25 @@ delete: description: Identity Id example: ef38f94347e94562b5bb8424a56397d8 responses: - '204': - $ref: '../../v3/responses/204.yaml' - '400': + "204": + $ref: "../../v3/responses/204.yaml" + "400": description: >- - Client Error - Returned if the request body is invalid. It may indicate that the specified identity is marked as protected and cannot be deleted. + Client Error - Returned if the request is invalid. It may indicate that the specified identity is marked as protected and cannot be deleted. content: application/json: schema: - $ref: '../../v3/schemas/ErrorResponseDto.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' + $ref: "../../v3/schemas/ErrorResponseDto.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: patchIdentity @@ -74,9 +115,12 @@ patch: Allows updating individual fields on an Identity using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. This endpoint is internal only and not intended to be moved to V3. When HEAD and DELETE endpoints are moved to V3 we will need to separate this entity and keep PATCH in beta only. + security: + - bearerAuth: + - "idn:identity-internal:update" parameters: - in: path - name: id + name: identityId schema: type: string required: true @@ -100,22 +144,22 @@ patch: path: "/internalCloudStatus" value: "UNREGISTERED" responses: - '200': + "200": description: >- Indicates the PATCH operation succeeded, and returns the identity's new representation. content: application/json: schema: - $ref: '../../beta/schemas/InternalIdentityDto.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' + $ref: "../../beta/schemas/InternalIdentityDto.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/idn/beta/schemas/Identity.yaml b/idn/beta/schemas/Identity.yaml index e6e7d6f..ae0cb8b 100644 --- a/idn/beta/schemas/Identity.yaml +++ b/idn/beta/schemas/Identity.yaml @@ -1,66 +1,52 @@ # The Identity DTO returned by the v3 identities APIs -type: object -title: IdentityDto -properties: - id: - type: string - readOnly: true - example: '6c9079b270a266a60170a2779fcb0006' - name: - type: string - description: The name of the identity - example: 'brandin.gray' - displayName: - type: string - description: The display name of the identity - example: 'Brandin Gray' - emailAddress: - type: string - description: The email address of the identity - example: 'sender@example.com' - processingState: - type: string - nullable: true - description: The processing state of the identity - enum: - -ERROR - identityStatus: - type: string - description: The identity's status in the system - enum: - - UNREGISTERED, - - REGISTERED, - - PENDING, - - WARNING, - - DISABLED, - - ACTIVE, - - DEACTIVATED, - - TERMINATED, - - ERROR, - - LOCKED - managerId: - type: string - nullable: true - description: The identity ID of the user marked as this identity's manager - example: 2c9079b270a266a60170a2779fcb0007 - isManager: - type: boolean - description: Whether this identity is marked as the manager of another identity - example: true - lastRefresh: - type: string - format: date-time - description: The last time the identity was refreshed by the system - example: '2020-11-22T15:42:31.123Z' - created: - type: string - format: date-time - description: When this identity was created - example: '2020-12-1T18:40:35.772Z' - modified: - type: string - format: date-time - description: When this identity was last modified or updated - attributes: - type: object - description: A map the identity attributes for the identity +allOf: + - $ref: './BaseCommonDto.yaml' + - type: object + title: IdentityDto + properties: + alias: + type: string + description: Alternate unique identifier for the identity + example: 'walter.white' + emailAddress: + type: string + description: The email address of the identity + example: 'sender@example.com' + processingState: + type: string + nullable: true + description: The processing state of the identity + enum: + - ERROR + - OK + example: ERROR + identityStatus: + type: string + description: The identity's status in the system + enum: + - UNREGISTERED + - REGISTERED + - PENDING + - WARNING + - DISABLED + - ACTIVE + - DEACTIVATED + - TERMINATED + - ERROR + - LOCKED + example: LOCKED + managerRef: + $ref: '../../v3/schemas/BaseReferenceDto.yaml' + isManager: + type: boolean + description: Whether this identity is a manager of another identity + example: true + lastRefresh: + type: string + format: date-time + description: The last time the identity was refreshed by the system + example: '2020-11-22T15:42:31.123Z' + attributes: + type: object + description: A map with the identity attributes for the identity + example: '{"uid":"Walter White","firstname":"walter","cloudStatus":"UNREGISTERED","displayName":"Walter White","identificationNumber":"942","lastSyncDate":1470348809380,"email":"walter@gmail.com","lastname":"white"}'