openapi: 3.0.0 servers: - description: Controller URL url: https://localhost:8080/controller/alerting/rest/v1/applications/{application-id}/ info: description: | AppDynamics Schedule APIs [Details at AppDynamics documentation](https://docs.appdynamics.com/display/PRO45/AppDynamics+APIs) version: "1.0.0" title: AppDynamics Schedule APIs termsOfService: 'https://www.appdynamics.com/terms/' license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' tags: - name: schedule description: Manage Health Rule Schedules externalDocs: description: Find out more url: 'https://docs.appdynamics.com' externalDocs: description: Find out more about Swagger url: 'http://swagger.io' paths: /schedules : parameters: - $ref: '#/components/parameters/applicationId' get: tags: - schedule summary: Returns a list of all the schedule IDs, names and description for the given application ID. description: | Returns a list of all the schedules associated with the specified application.
The schedule ID, name and description are retuned.
For complete details of a Health Rule, see `GET /schedules/{schedule-id}` operationId: getSchedules responses: '200': description: Fetched successfully content: application/json: schema: $ref: '#/components/schemas/ScheduleSummary' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' post: tags: - schedule summary: Create a new schedule description: Creates a new schedule for the defined payload and returns the ID. operationId: createSchedule responses: '201': description: Created successfully content: application/json: schema: $ref: '#/components/schemas/Schedule' links: CreatedScheduleId: operationId: getSchedule parameters: scheduleId: '$response.body#/id' description: The `id` value returned in the response can be used as `schedule-id` parameter in `GET /schedules/{schedule-id}` '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' requestBody: $ref: '#/components/requestBodies/Schedule' '/schedules/{schedule-id}': parameters: - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/scheduleId' get: tags: - schedule summary: Get a JSON representation of the schedule for a specified schedule ID. description: Get a JSON representation of the schedule for a specified schedule ID. operationId: getSchedule responses: '200': description: Fetched Successfully content: application/json: schema: $ref: '#/components/schemas/Schedule' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: tags: - schedule summary: Update existing schedule using JSON representation. description: Update existing schedule using JSON representation. operationId: updateSchedule responses: '200': description: Updated Successfully content: application/json: schema: $ref: '#/components/schemas/Schedule' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' requestBody: $ref: '#/components/requestBodies/Schedule' delete: tags: - schedule summary: Delete existing schedule using schedule ID. description: Delete existing schedule using schedule ID. operationId: deleteSchedule responses: '204': description: Deleted Successfully '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' components: schemas: Schedule: description: "Schedule definition" type: object properties: id: description: Auto-generated by the system and returned in response. type: integer format: int64 readOnly: true name: description: Name of the schedule. type: string minLength: 1 example: "Every day at noon" description: description: Description of the schedule. type: string example: "Runs every day at 12 in afternoon" timezone: $ref: '#/components/schemas/Timezone' scheduleConfiguration: $ref: '#/components/schemas/ScheduleConfiguration' required: - name - timezone - scheduleConfiguration example: name: "One Time Schedule" description: "One Time Schedule" timezone: "America/Los_Angeles" scheduleConfiguration: scheduleFrequency: "ONE_TIME" startDate: "01/01/2019" startTime: "06:00" endDate: "01/01/2019" endTime: "18:00" ScheduleConfiguration: type: object properties: scheduleFrequency: $ref: '#/components/schemas/ScheduleFrequency' required: - scheduleFrequency discriminator: propertyName: scheduleFrequency mapping: ONE_TIME: '#/components/schemas/OneTimeSchedule' DAILY: '#/components/schemas/DailySchedule' WEEKLY: '#/components/schemas/WeeklySchedule' MONTHLY_SPECIFIC_DATE: '#/components/schemas/MonthlySpecificDateSchedule' MONTHLY_SPECIFIC_DAY: '#/components/schemas/MonthlySpecificDaySchedule' CUSTOM: '#/components/schemas/CustomSchedule' OneTimeSchedule: description: "scheduleFrequency: ONE_TIME" allOf: - $ref: '#/components/schemas/ScheduleConfiguration' - type: object properties: startDate: $ref: '#/components/schemas/Date' startTime: $ref: '#/components/schemas/Time' endDate: $ref: '#/components/schemas/Date' endTime: $ref: '#/components/schemas/Time' required: - startDate - startTime - endDate - endTime DailySchedule: description: "scheduleFrequency: DAILY" allOf: - $ref: '#/components/schemas/ScheduleConfiguration' - type: object properties: startTime: $ref: '#/components/schemas/Time' endTime: $ref: '#/components/schemas/Time' required: - startTime - endTime WeeklySchedule: description: "scheduleFrequency: WEEKLY" allOf: - $ref: '#/components/schemas/ScheduleConfiguration' - type: object properties: days: type: array items: $ref: '#/components/schemas/DayOfWeek' minItems: 1 maxItems: 7 startTime: $ref: '#/components/schemas/Time' endTime: $ref: '#/components/schemas/Time' required: - days - startTime - endTime MonthlySpecificDateSchedule: description: "scheduleFrequency: MONTHLY_SPECIFIC_DATE" allOf: - $ref: '#/components/schemas/ScheduleConfiguration' - type: object properties: startDate: description: The start date of the month. type: string pattern: '^(0[1-9]|[12][0-9]|3[01])$|^Last Day$' example: "01" startTime: $ref: '#/components/schemas/Time' endDate: description: The end date of the month. type: string pattern: '^(0[1-9]|[12][0-9]|3[01])$|^Last Day$' example: "Last Day" endTime: $ref: '#/components/schemas/Time' required: - startTime - endTime - startDate - endDate MonthlySpecificDaySchedule: description: "scheduleFrequency: MONTHLY_SPECIFIC_DAY" allOf: - $ref: '#/components/schemas/ScheduleConfiguration' - type: object properties: startTime: $ref: '#/components/schemas/Time' endTime: $ref: '#/components/schemas/Time' day: $ref: '#/components/schemas/DayOfWeek' occurrence: $ref: '#/components/schemas/Occurrence' required: - startTime - endTime - day - occurrence CustomSchedule: description: "scheduleFrequency: CUSTOM" allOf: - $ref: '#/components/schemas/ScheduleConfiguration' - type: object properties: startCron: description: The beginning of the cron expression. type: string example: "0 0 6 ? * 2-6" endCron: description: The end of the cron expression type: string example: "0 0 15 ? * 2-6" required: - startCron - endCron ScheduleFrequency: type: string enum: - ONE_TIME - DAILY - WEEKLY - MONTHLY_SPECIFIC_DATE - MONTHLY_SPECIFIC_DAY - CUSTOM example: CUSTOM Occurrence: type: string enum: - FIRST - SECOND - THIRD - FOURTH - LAST example: FIRST DayOfWeek: type: string enum: - SUNDAY - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY example: SUNDAY Time: description: The time in 24 hour format. type: string pattern: '^([01]\d|2[0-3]):([0-5]\d)$' example: "14:00" Date: description: The date in the following format :- DD/MM/YYYY type: string pattern: '^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$' example: "01/01/2019" Timezone: description: Timezone Id type: string example: "America/Los_Angeles" ScheduleSummary: type: array items: $ref: '#/components/schemas/ScheduleSummaryElement' ScheduleSummaryElement: type: object properties: id: description: The schedule ID. type: integer format: int64 example: 10 name: description: Name of the schedule. type: string minLength: 1 example: "Every day at noon" description: description: Description of the schedule. type: string minLength: 1 example: "Runs every day at 12 noon" timezone: $ref: '#/components/schemas/Timezone' required: - id - name - description - timezone ErrorResponse: type: object properties: statusCode: type: integer example: 404 message: type: string example: "Schedule with given Id not found." parameters: applicationId: in: path name: application-id required: true schema: type: integer format: int64 example: 10 scheduleId: in: path name: schedule-id description: The ID of the schedule to be updated. required: true schema: type: integer format: int64 example: 1 requestBodies: Schedule: content: application/json: schema: $ref: '#/components/schemas/Schedule' responses: NotFound: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Conflict: description: Already exists content: application/json: schema: $ref: '#/components/schemas/ErrorResponse'