diff --git a/idn/sailpoint-api.v3.yaml b/idn/sailpoint-api.v3.yaml index c63e6548..98e98b65 100644 --- a/idn/sailpoint-api.v3.yaml +++ b/idn/sailpoint-api.v3.yaml @@ -279,6 +279,35 @@ 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: Certification Campaign Filters + description: | + Use this API to implement the certification campaign filter functionality. These filters can be used to create a certification campaign that includes a subset of your entitlements or users to certify. + + For example, if for a certification campaign an organization wants to certify only specific users or entitlements, then those can be included/excluded on the basis of campaign filters. + + For more information about creating a campaign filter, refer to [Creating a Campaign Filter](https://documentation.sailpoint.com/saas/help/certs/campaign_filters.html#creating-a-campaign-filter) + + You can create campaign filters using any of the following criteria types: + + - Access Profile : This criteria type includes or excludes access profiles from a campaign. + + - Account Attribute : This criteria type includes or excludes certification items that match a specified value in an account attribute. + + - Entitlement : This criteria type includes or excludes entitlements from a campaign. + + - Identity : This criteria type includes or excludes specific identities from your campaign. + + - Identity Attribute : This criteria type includes or excludes identities based on whether they have an identity attribute that matches criteria you've chosen. + + - Role : This criteria type includes or excludes roles, as opposed to identities. + + - Source : This criteria type includes or excludes entitlements from a source you select. + + For more information about these criteria types, refer to [Types of Campaign Filters](https://documentation.sailpoint.com/saas/help/certs/campaign_filters.html#types-of-campaign-filters) + + Once the campaign filter is created, it can be linked while creating the campaign. The generated campaign will have the items to review as per the campaign filter. + + For example, An inclusion campaign filter is created with a source of Source 1, an operation of Equals, and an entitlement of Entitlement 1. When this filter is selected, only users who have Entitlement 1 are included in the campaign, and only Entitlement 1 is shown in the certification. - name: Global Tenant Security Settings description: | Use this API to implement and customize global tenant security settings. @@ -870,6 +899,10 @@ paths: $ref: './v3/paths/campaign-run-report.yaml' /campaigns/reports-configuration: $ref: './v3/paths/campaign-reports-configuration.yaml' + /campaign-filters: + $ref: './v3/paths/campaign-filters.yaml' + /campaign-filters/{id}: + $ref: './v3/paths/campaign-filter.yaml' /campaign-templates: $ref: './v3/paths/campaign-templates.yaml' /campaign-templates/{id}: diff --git a/idn/v3/paths/campaign-filter.yaml b/idn/v3/paths/campaign-filter.yaml new file mode 100644 index 00000000..3bb48147 --- /dev/null +++ b/idn/v3/paths/campaign-filter.yaml @@ -0,0 +1,38 @@ +get: + operationId: getCampaignFilterById + tags: + - Certification Campaign Filters + summary: Get Campaign Filter by ID + description: >- + Retrieves information for an existing campaign filter using the filter's ID. + security: + - UserContextAuth: [idn:campaign-filter:read] + parameters: + - in: path + name: filterId + schema: + type: string + example: e9f9a1397b842fd5a65842087040d3ac + required: true + description: The ID of the campaign filter to be retrieved. + responses: + '200': + description: A campaign filter object. + content: + application/json: + schema: + type: array + items: + $ref: '../schemas/CampaignFilterDetails.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/campaign-filters.yaml b/idn/v3/paths/campaign-filters.yaml new file mode 100644 index 00000000..0a8d74b5 --- /dev/null +++ b/idn/v3/paths/campaign-filters.yaml @@ -0,0 +1,32 @@ +post: + operationId: createCampaignFilter + tags: + - Certification Campaign Filters + summary: Create a Campaign Filter + description: >- + Create a campaign Filter based on filter details and criteria. + security: + - UserContextAuth: [ idn:campaign-filter:create ] + requestBody: + required: true + content: + application/json: + schema: + $ref: '../schemas/CampaignFilterDetails.yaml' + responses: + '200': + description: Created successfully. + content: + application/json: + schema: + $ref: '../schemas/CampaignFilterDetails.yaml' + '400': + $ref: '../responses/400.yaml' + '401': + $ref: '../responses/401.yaml' + '403': + $ref: '../responses/403.yaml' + '429': + $ref: '../responses/429.yaml' + '500': + $ref: '../responses/500.yaml' \ No newline at end of file diff --git a/idn/v3/schemas/CampaignFilterDetails.yaml b/idn/v3/schemas/CampaignFilterDetails.yaml new file mode 100644 index 00000000..e9f0ccdf --- /dev/null +++ b/idn/v3/schemas/CampaignFilterDetails.yaml @@ -0,0 +1,69 @@ +type: object +description: Campaign Filter Details +properties: + id: + type: string + description: Id of the campaign filter + example: e9f9a1397b842fd5a65842087040d3ac + name: + type: string + description: This is campaign filter's name. + example: Identity Attribute Campaign Filter + description: + type: string + description: This is campaign filter's description. + example: Campaign filter to certify data based on specified property of Identity Attribute. + owner: + type: string + description: The owner of this filter. This field is automatically populated at creation time with the current user. + example: SailPoint Support + mode: + description: >- + The mode/type of Filter, where it is of INCLUSION or EXCLUSION type. INCLUSION type will include the data in generated campaign + as per specified in criteria, whereas EXCLUSION type will exclude the the data in generated campaign as per specified in criteria. + enum: + - "INCLUSION" + - "EXCLUSION" + example: INCLUSION + criteriaList: + type: array + description: List of criteria. + items: + type: object + properties: + type: + $ref: './CriteriaType.yaml' + operation: + $ref: './Operation.yaml' + property: + type: string + description: The specified key from the Type of criteria. + example: displayName + value: + type: string + description: The value for the specified key from the Type of Criteria + example: Allie + required: + - type + - property + - value + - operation + example: [ + { + "type": "IDENTITY_ATTRIBUTE", + "property": "displayName", + "value": "support", + "operation": "CONTAINS", + "negateResult": false, + "shortCircuit": false, + "recordChildMatches": false, + "id": null, + "suppressMatchedItems": false, + "children": null + } + ] +required: + - name + - description + - owner + - mode \ No newline at end of file diff --git a/idn/v3/schemas/CriteriaType.yaml b/idn/v3/schemas/CriteriaType.yaml new file mode 100644 index 00000000..b42794df --- /dev/null +++ b/idn/v3/schemas/CriteriaType.yaml @@ -0,0 +1,15 @@ +type: string +enum: + - COMPOSITE + - ROLE + - IDENTITY + - IDENTITY_ATTRIBUTE + - ENTITLEMENT + - INVALID_CERTIFIABLE_ENTITY + - ACCESS_PROFILE + - SOURCE + - ACCOUNT + - INVALID_CERTIFIABLE_BUNDLE + - AGGREGATED_ENTITLEMENT +description: Type of the criteria in the filter. +example: IDENTITY_ATTRIBUTE diff --git a/idn/v3/schemas/Operation.yaml b/idn/v3/schemas/Operation.yaml new file mode 100644 index 00000000..35a1659d --- /dev/null +++ b/idn/v3/schemas/Operation.yaml @@ -0,0 +1,11 @@ +type: string +enum: + - EQUALS + - NOT_EQUALS + - CONTAINS + - STARTS_WITH + - ENDS_WITH + - AND + - OR +description: Operation on a specific criteria +example: EQUALS diff --git a/idn/v3/schemas/campaignFilters/example/CreateCampaignFilter.yaml b/idn/v3/schemas/campaignFilters/example/CreateCampaignFilter.yaml new file mode 100644 index 00000000..4bebd450 --- /dev/null +++ b/idn/v3/schemas/campaignFilters/example/CreateCampaignFilter.yaml @@ -0,0 +1,19 @@ +description: >- + This creates a filter that can be used while generating campaigns to include/exclude the data to certify +value: + name: Test Campaign Filter Exclusion + description: this is for testing purpose of Exclusion. + owner: SailPoint Support + mode: EXCLUSION + criteriaList: + - name: Manager Review + type: IDENTITY_ATTRIBUTE + property: displayName + value: support + operation: CONTAINS + negateResult: false + shortCircuit: false + recordChildMatches: false + id: null + suppressMatchedItems: false + children: null \ No newline at end of file diff --git a/idn/v3/schemas/search/TypeAheadQuery.yaml b/idn/v3/schemas/search/TypeAheadQuery.yaml index 6ba43a24..16f3c7d5 100644 --- a/idn/v3/schemas/search/TypeAheadQuery.yaml +++ b/idn/v3/schemas/search/TypeAheadQuery.yaml @@ -42,4 +42,16 @@ properties: format: int32 minimum: 1 default: 100 - example: 100 \ No newline at end of file + example: 100 + sort: + description: >- + The sort order of the returned records. + type: string + default: 'desc' + example: 'asc' + sortByValue: + description: >- + The flag that defines the sort type, by count or value. + type: boolean + default: false + example: true \ No newline at end of file diff --git a/idn/v3/schemas/search/examples/typeAheadQuery-nestedType.yaml b/idn/v3/schemas/search/examples/typeAheadQuery-nestedType.yaml index 40c2cef4..3d43593d 100644 --- a/idn/v3/schemas/search/examples/typeAheadQuery-nestedType.yaml +++ b/idn/v3/schemas/search/examples/typeAheadQuery-nestedType.yaml @@ -9,3 +9,5 @@ value: query: 'Work' maxExpansions: 50 size: 100 + sort: 'desc' + sortByValue: false diff --git a/idn/v3/schemas/search/examples/typeAheadQuery.yaml b/idn/v3/schemas/search/examples/typeAheadQuery.yaml index abac7163..e14a2c4b 100644 --- a/idn/v3/schemas/search/examples/typeAheadQuery.yaml +++ b/idn/v3/schemas/search/examples/typeAheadQuery.yaml @@ -8,3 +8,5 @@ value: query: 'Jo' maxExpansions: 50 size: 100 + sort: 'desc' + sortByValue: false