diff --git a/idn/v3/paths/scheduled-searches-id.yaml b/idn/v3/paths/scheduled-searches-id.yaml index 95584af..2d90c6e 100644 --- a/idn/v3/paths/scheduled-searches-id.yaml +++ b/idn/v3/paths/scheduled-searches-id.yaml @@ -23,16 +23,21 @@ put: $ref: '../schemas/search/scheduled/ScheduledSearch.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' get: tags: - Scheduled Search - description: | - Returns the specified scheduled search. - summary: Return a Scheduled Search by ID + description: Returns the specified scheduled search. + summary: Get a Scheduled Search operationId: scheduledSearchGet parameters: - $ref: '../parameters/path/search/id.yaml' @@ -43,21 +48,39 @@ get: application/json: schema: $ref: '../schemas/search/scheduled/ScheduledSearch.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' delete: tags: - Scheduled Search description: | Deletes the specified scheduled search. operationId: scheduledSearchDelete - summary: Delete a Scheduled Search by ID + summary: Delete a Scheduled Search parameters: - $ref: '../parameters/path/search/id.yaml' responses: '204': description: No Content - Indicates the request was successful but there is no content to be returned in the response. + '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' diff --git a/idn/v3/paths/scheduled-searches.yaml b/idn/v3/paths/scheduled-searches.yaml index 33ef19a..a9da5e5 100644 --- a/idn/v3/paths/scheduled-searches.yaml +++ b/idn/v3/paths/scheduled-searches.yaml @@ -13,6 +13,119 @@ post: allOf: - $ref: '../schemas/search/scheduled/Name.yaml' - $ref: '../schemas/search/scheduled/Schedule.yaml' + examples: + Daily Search: + description: A search that executes each day at a 9 AM + value: + { + "savedSearchId": "9c620e13-cd33-4804-a13d-403bd7bcdbad", + "schedule": { + "type": "DAILY", + "hours": { + "type": "LIST", + "values": [ + "9" + ] + } + }, + "recipients": [ + { + "type": "IDENTITY", + "id": "2c9180867624cbd7017642d8c8c81f67" + } + ] + } + Weekly Search: + description: A search that executes each week on select days and times + value: + { + "savedSearchId": "9c620e13-cd33-4804-a13d-403bd7bcdbad", + "schedule": { + "type": "WEEKLY", + "days": { + "type": "LIST", + "values": [ + "MON", + "TUE", + "WED", + "THU", + "FRI", + "SAT", + "SUN" + ] + }, + "hours": { + "type": "LIST", + "values": [ + "9" + ] + } + }, + "recipients": [ + { + "type": "IDENTITY", + "id": "2c9180867624cbd7017642d8c8c81f67" + } + ] + } + Monthly Search: + description: A search that executes each month on select days and times + value: + { + "savedSearchId": "9c620e13-cd33-4804-a13d-403bd7bcdbad", + "schedule": { + "type": "MONTHLY", + "days": { + "type": "LIST", + "values": [ + "1", + "7", + "14", + "L" + ] + }, + "hours": { + "type": "LIST", + "values": [ + "9" + ] + } + }, + "recipients": [ + { + "type": "IDENTITY", + "id": "2c9180867624cbd7017642d8c8c81f67" + } + ] + } + Calendar Search: + description: A search that executes on specific calendar days + value: + { + "savedSearchId": "9c620e13-cd33-4804-a13d-403bd7bcdbad", + "schedule": { + "type": "CALENDAR", + "days": { + "type": "LIST", + "values": [ + "2023-01-22", + "2023-02-22" + ] + }, + "hours": { + "type": "LIST", + "values": [ + "9" + ] + } + }, + "recipients": [ + { + "type": "IDENTITY", + "id": "2c9180867624cbd7017642d8c8c81f67" + } + ] + } required: true responses: '201': @@ -23,14 +136,22 @@ post: $ref: '../schemas/search/scheduled/ScheduledSearch.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' get: tags: - Scheduled Search description: | Returns a list of scheduled searches. - summary: Return a list of scheduled searches + summary: List scheduled searches operationId: scheduledSearchList parameters: - $ref: '../parameters/offset.yaml' @@ -72,5 +193,13 @@ get: example: 5 '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' diff --git a/idn/v3/schemas/schedule/Schedule.yaml b/idn/v3/schemas/schedule/Schedule.yaml index 0b331ef..f90c752 100644 --- a/idn/v3/schemas/schedule/Schedule.yaml +++ b/idn/v3/schemas/schedule/Schedule.yaml @@ -1,39 +1,40 @@ type: object -description: | - The schedule information. +description: The schedule information. properties: type: $ref: 'ScheduleType.yaml' - months: - $ref: Selector.yaml - description: 'The months selected.' days: - description: | - The days selected. - example: - type: 'LIST' - values: - - 'MON' - - 'WED' - - 'FRI' - $ref: Selector.yaml + allOf: + - $ref: Selector.yaml + - description: | + The days to execute the search. + + If `type` is `WEEKLY`, the values will be `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, and `SUN`. + + If `type` is `MONTHLY`, the values will be a number in double quotes, like `"1"`, `"10"`, or `"28"`. Optionally, the value `"L"` can be used to refer to the last day of the month. + example: + type: 'LIST' + values: + - 'MON' + - 'WED' + - 'FRI' hours: - description: | - The hours selected. - example: - type: 'RANGE' - values: - - '9' - - '18' - interval: 3 - $ref: Selector.yaml + allOf: + - $ref: Selector.yaml + - description: The hours selected. + example: + type: 'RANGE' + values: + - '9' + - '18' + interval: 3 + nullable: false expiration: - description: | - The schedule expiration date. Latest possible expiration date is '2038-01-19T03:14:07+0000' + description: The schedule expiration date. Latest possible expiration date is '2038-01-19T03:14:07+0000' $ref: ../search/model/base/DateTime.yaml timeZoneId: - description: | - The ID of the time zone for the schedule. + description: The GMT formatted timezone the schedule will run in (ex. GMT-06:00). If no timezone is specified, the org's default timezone is used. + nullable: true type: string example: 'GMT-06:00' required: diff --git a/idn/v3/schemas/search/Index.yaml b/idn/v3/schemas/search/Index.yaml index 82e47ef..7c17a1a 100644 --- a/idn/v3/schemas/search/Index.yaml +++ b/idn/v3/schemas/search/Index.yaml @@ -10,4 +10,5 @@ enum: - events - identities - roles +- "*" example: identities diff --git a/idn/v3/schemas/search/scheduled/Name.yaml b/idn/v3/schemas/search/scheduled/Name.yaml index 7bc4002..74e3dc2 100644 --- a/idn/v3/schemas/search/scheduled/Name.yaml +++ b/idn/v3/schemas/search/scheduled/Name.yaml @@ -5,9 +5,10 @@ properties: The name of the scheduled search. type: string example: 'Daily disabled accounts' + nullable: true description: description: | The description of the scheduled search. type: string nullable: true - example: 'Daily disabled accounts' + example: 'Daily disabled accounts' \ No newline at end of file diff --git a/idn/v3/schemas/search/scheduled/Schedule.yaml b/idn/v3/schemas/search/scheduled/Schedule.yaml index f1325c2..4d7a1b0 100644 --- a/idn/v3/schemas/search/scheduled/Schedule.yaml +++ b/idn/v3/schemas/search/scheduled/Schedule.yaml @@ -1,26 +1,42 @@ type: object properties: savedSearchId: - description: | - The ID of the saved search that will be executed. + description: The ID of the saved search that will be executed. type: string example: '554f1511-f0a1-4744-ab14-599514d3e57c' created: - description: | - The date the scheduled search was initially created. - $ref: ../model/base/DateTime.yaml + allOf: + - $ref: ../model/base/DateTime.yaml + description: The date the scheduled search was initially created. + readOnly: true + nullable: false modified: - description: | - The last date the scheduled search was modified. - $ref: ../model/base/DateTime.yaml + allOf: + - $ref: ../model/base/DateTime.yaml + description: The last date the scheduled search was modified. + readOnly: true + nullable: false schedule: $ref: '../../schedule/Schedule.yaml' recipients: - description: | - The email recipients. + description: A list of identities that should receive the scheduled search report via email. type: array items: - $ref: '../model/base/TypedReference.yaml' + type: object + properties: + type: + type: string + description: The type of object being referenced + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: The ID of the referenced object + example: 2c9180867624cbd7017642d8c8c81f67 + required: + - type + - id enabled: description: | Indicates if the scheduled search is enabled. diff --git a/idn/v3/schemas/search/scheduled/ScheduledSearch.yaml b/idn/v3/schemas/search/scheduled/ScheduledSearch.yaml index 70efb51..18a31af 100644 --- a/idn/v3/schemas/search/scheduled/ScheduledSearch.yaml +++ b/idn/v3/schemas/search/scheduled/ScheduledSearch.yaml @@ -1,20 +1,42 @@ type: object allOf: -- $ref: 'Name.yaml' -- $ref: 'Schedule.yaml' - type: object properties: id: - description: | - The scheduled search ID. + description: The scheduled search ID. type: string example: '0de46054-fe90-434a-b84e-c6b3359d0c64' + readOnly: true owner: - description: | - The owner of the scheduled search. - $ref: ../model/base/TypedReference.yaml + description: The owner of the scheduled search + readOnly: true + type: object + properties: + type: + type: string + description: The type of object being referenced + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: The ID of the referenced object + example: 2c9180867624cbd7017642d8c8c81f67 + required: + - type + - id ownerId: - description: The ID of the scheduled search owner + description: | + The ID of the scheduled search owner. + + Please use the `id` in the `owner` object instead. type: string example: 2c9180867624cbd7017642d8c8c81f67 - + readOnly: true + deprecated: true +- $ref: 'Name.yaml' +- $ref: 'Schedule.yaml' +required: +- id +- owner +- ownerId \ No newline at end of file