"openapi: 3.0.1\ninfo:\n title: Notification API\n description: >\n Notification APs for Polaris\n\n\n **Base path change and deprecation notice**\n\n\n The base path for the Notification APIs is changing (from `/api/notification-service` to `/api/notification`). The `/api/notification-service/` base path will continue to function until `Mon, 31\n Mar 2025 23:59:59 GMT`.\n\n\n Additionally, several endpoints are being deprecated. Endpoints that are being deprecated include additional properties in response headers:\n\n\n ```\n\n \"Deprecation\": \"Tue, 31 Dec 2024 23:59:59 GMT\",\n\n \"Link\": \"New version of API link; rel=\\\"alternate\\\"\",\n\n \"Sunset\": \"Mon, 31 Mar 2025 23:59:59 GMT\"\n\n ```\n\n\n * `Deprecation`: The date and time when a resource will be deprecated. After this date, the resource may be removed from future versions of the API.\n\n * `Link`: A link to a supported endpoint that replicates the functionality of a deprecated one.\n\n * `Sunset`: The date and time when a resource will be removed, and no longer be available.\n contact:\n name: Synopsys, Inc.\n url: https://polaris.synopsys.com\n version: 1.0.0\nservers:\n - url: https://polaris.synopsys.com\ntags:\n - name: Event Groups\n description: Contains APIs to deal with event groups and notification subscriptions for them by a user.\n - name: Organization Subscriptions\n description: Contains API to deal with notification subscriptions of an organization.\n - name: User Subscriptions\n description: Contains APIs to deal with notification subscriptions of a user.\n - name: Organization Preferences\n description: Contains API to deal with notification preferences of an organization.\nsecurity:\n - ApiKeyAuth: []\npaths:\n /api/notification-service/organization-subscriptions:\n get:\n tags:\n - Organization Subscriptions\n summary: Get organization notification subscriptions\n description: Get organization notification subscriptions\n operationId: getOrganizationNotificationSubscriptionsDeprecated\n parameters:\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/0'\n responses:\n '200':\n $ref: '#/components/responses/GetOrganizationNotificationSubscriptionsResponse'\n '400':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400'\n '401':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/401'\n '403':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/403'\n '404':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/404'\n '500':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/500'\n deprecated: true\n patch:\n tags:\n - Organization Subscriptions\n summary: Update organization notification subscriptions\n description: Update organization notification subscriptions\n operationId: patchOrganizationNotificationSubscriptionsDeprecated\n parameters:\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/0'\n requestBody:\n $ref: '#/components/requestBodies/PatchOrganizationNotificationSubscriptionsRequestBodyV1'\n responses:\n '200':\n $ref: '#/components/responses/PatchOrganizationNotificationSubscriptionsResponse'\n '400':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400'\n '401':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/401'\n '403':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/403'\n '404':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/404'\n '500':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/500'\n deprecated: true\n /api/notification/organization-preferences:\n get:\n tags:\n - Organization Preferences\n summary: Get organization notification preferences\n description: Get organization notification preferences\n operationId: getOrganizationNotificationPreferences\n parameters:\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/0'\n responses:\n '200':\n $ref: '#/components/responses/GetOrganizationNotificationPreferencesResponse'\n '400':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400'\n '401':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/401'\n '403':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/403'\n '404':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/404'\n '500':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/500'\n patch:\n tags:\n - Organization Preferences\n summary: Update organization notification preferences\n description: Update organization notification preferences\n operationId: patchOrganizationNotificationPreferences\n parameters:\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/0'\n requestBody:\n $ref: '#/components/requestBodies/PatchOrganizationNotificationPreferencesRequestBodyV1'\n responses:\n '200':\n $ref: '#/components/responses/PatchOrganizationNotificationPreferencesResponse'\n '400':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400'\n '401':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/401'\n '403':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/403'\n '404':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/404'\n '500':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/500'\n /api/notification-service/event-groups:\n get:\n tags:\n - Event Groups\n summary: Get user notification subscriptions for event groups\n description: Get user notification subscriptions for event groups\n operationId: getUserEventGroupNotificationSubscriptionsDeprecated\n parameters:\n - name: Organization-Id\n in: header\n required: true\n description: ID of the organization owning the resource being accessed.\n example: fb990429-3876-4744-86f2-21913cb0bd37\n schema:\n type: string\n format: uuid\n example: fb990429-3876-4744-86f2-21913cb0bd37\n - name: _limit\n in: query\n description: |\n Limits the number of items returned in the result.\n **Default:** 100\n example: 10\n schema:\n type: integer\n minimum: 0\n maximum: 100\n example: 10\n - name: _offset\n in: query\n description: |\n Skips the first `_offset` items in the result.\n **Default:** 0\n example: 10\n schema:\n type: integer\n minimum: 0\n example: 10\n responses:\n '200':\n $ref: '#/components/responses/GetUserEventGroupsResponse'\n '400':\n description: Returned when the request could not be processed due to invalid syntax.\n content:\n application/json:\n schema:\n type: object\n description: Provides a error response with details.\n properties:\n title:\n type: string\n description: A short, human-readable summary of the problem.\n example: Unable to process your request.\n status:\n type: integer\n description: The HTTP status code generated by the origin server for this occurrence of the problem.\n example: 0\n errors:\n type: array\n description: List of errors that occurred during the request.\n items:\n type: object\n description: An individual error that occurred during the request.\n properties:\n detail:\n type: string\n description: A human-readable explanation specific to this occurrence of the problem.\n example: Missing request body.\n example:\n title: Unable to process your request.\n status: 400\n errors:\n - detail: Missing request body.\n '401':\n description: Returned if the client has not provided a valid access token in the request.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400/content/application~1json/schema'\n example:\n title: Unable to process your request.\n status: 401\n errors:\n - detail: Invalid credentials.\n '403':\n description: Returned if the authenticated user does not have access to the requested resource.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400/content/application~1json/schema'\n example:\n title: Unable to process your request.\n status: 403\n errors:\n - detail: Access denied, cannot access the requested resource.\n '404':\n description: Returned when a specified resource could not be found.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400/content/application~1json/schema'\n example:\n title: Unable to process your request.\n status: 404\n errors:\n - detail: Something is not found.\n '500':\n description: Returned when server side error has occurred.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400/content/application~1json/schema'\n example:\n title: Unable to process your request.\n status: 500\n errors:\n - detail: Something went wrong while storing the data.\n deprecated: true\n /api/notification/subscriptions/event-groups:\n get:\n tags:\n - User Subscriptions\n summary: Get user notification subscriptions for event groups\n description: Get user notification subscriptions for event groups\n operationId: getUserEventGroupNotificationSubscriptions\n parameters:\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/0'\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/1'\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/2'\n responses:\n '200':\n $ref: '#/components/responses/GetUserEventGroupNotificationSubscriptionsResponse'\n '400':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400'\n '401':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/401'\n '403':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/403'\n '404':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/404'\n '500':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/500'\n /api/notification-service/event-groups/{eventGroupId}/subscriptions:\n patch:\n tags:\n - User Subscriptions\n summary: Update user notification subscriptions for event groups\n description: Update user notification subscriptions for event groups\n operationId: patchUserEventGroupNotificationSubscriptionsDeprecated\n parameters:\n - $ref: '#/paths/~1api~1notification-service~1event-groups/get/parameters/0'\n - name: eventGroupId\n in: path\n required: true\n description: ID of the event group.\n example: 777b7a9e-0414-44d5-806e-ce9d068bd081\n schema:\n type: string\n format: uuid\n example: 777b7a9e-0414-44d5-806e-ce9d068bd081\n requestBody:\n $ref: '#/components/requestBodies/PatchUserEventGroupNotificationSubscriptionsRequestBodyV1'\n responses:\n '200':\n $ref: '#/components/responses/PatchUserEventGroupNotificationSubscriptionsResponse'\n '400':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/400'\n '401':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/401'\n '403':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/403'\n '404':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/404'\n '500':\n $ref: '#/paths/~1api~1notification-service~1event-groups/get/responses/500'\n deprecated: true\ncomponents:\n requestBodies:\n PatchOrganizationNotificationSubscriptionsRequestBodyV1:\n required: true\n content:\n application/vnd.synopsys.notification-service.organization-subscription-1+json:\n schema:\n $ref: '#/components/schemas/PatchNotificationSubscriptionsRequestV1'\n PatchOrganizationNotificationPreferencesRequestBodyV1:\n required: true\n content:\n application/vnd.synopsys.notification-service.organization-preferences-1+json:\n schema:\n $ref: '#/components/schemas/PatchNotificationSubscriptionsRequestV1'\n PatchUserEventGroupNotificationSubscriptionsRequestBodyV1:\n required: true\n content:\n application/vnd.synopsys.notification-service.event-group-1+json:\n schema:\n $ref: '#/components/schemas/PatchNotificationSubscriptionsRequestV1'\n responses:\n GetOrganizationNotificationSubscriptionsResponse:\n description: Success. A response with organization notification subscriptions.\n content:\n application/vnd.synopsys.notification-service.organization-subscription-1+json:\n schema:\n type: object\n properties:\n object:\n $ref: '#/components/schemas/OrganizationNotificationSubscriptionsV1'\n _links:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionItem/properties/_links'\n GetOrganizationNotificationPreferencesResponse:\n description: Success. A response with organization notification preferences.\n content:\n application/vnd.synopsys.notification-service.organization-preferences-1+json:\n schema:\n type: object\n properties:\n object:\n $ref: '#/components/schemas/OrganizationNotificationPreferencesV1'\n _links:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionItem/properties/_links'\n PatchOrganizationNotificationSubscriptionsResponse:\n description: Success. An empty response.\n content:\n application/vnd.synopsys.notification-service.organization-subscription-1+json:\n schema:\n type: object\n PatchOrganizationNotificationPreferencesResponse:\n description: Success. An empty response.\n content:\n application/vnd.synopsys.notification-service.organization-preferences-1+json:\n schema:\n type: object\n GetUserEventGroupsResponse:\n description: Success. A response of event groups with user notification subscriptions.\n content:\n application/vnd.synopsys.notification-service.event-group-1+json:\n schema:\n type: object\n properties:\n _items:\n type: array\n description: List of user notification subscriptions for event groups\n items:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionItem'\n _links:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionItem/properties/_links'\n _collections:\n type: object\n description: Pagination information for the current result set.\n properties:\n itemCount:\n type: integer\n description: The total number of items.\n example: 450\n pageCount:\n type: integer\n description: The total number of pages.\n example: 5\n currentPage:\n type: integer\n description: The current page number of the results (one-based), given the current offset and limit settings. An empty result does not have a current page.\n example: 3\n _type:\n type: string\n description: An indicator of the resource type.\n example: test\n GetUserEventGroupNotificationSubscriptionsResponse:\n description: Success. A response with user notification subscriptions for event groups.\n content:\n application/vnd.synopsys.notification-service.subscriptions.event-group-1+json:\n schema:\n type: object\n properties:\n _items:\n type: array\n description: List of user notification subscriptions for event groups\n items:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionItem'\n _links:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionItem/properties/_links'\n _collections:\n $ref: '#/components/responses/GetUserEventGroupsResponse/content/application~1vnd.synopsys.notification-service.event-group-1%2Bjson/schema/properties/_collections'\n PatchUserEventGroupNotificationSubscriptionsResponse:\n description: Success. An empty response.\n content:\n application/vnd.synopsys.notification-service.event-group-1+json:\n schema:\n type: object\n securitySchemes:\n ApiKeyAuth:\n type: apiKey\n in: header\n name: Api-Token\n schemas:\n NotificationSubscriptionResourceV1:\n type: object\n description: Notification subscription\n properties:\n notification-type:\n type: string\n example: EMAIL\n description: Notification channel\n subscribed:\n type: boolean\n example: true\n description: Subscribed or not\n EventGroupNotificationSubscriptionResourceV1:\n type: object\n description: Event group notification subscription\n properties:\n id:\n type: string\n format: uuid\n example: 777b7a9e-0414-44d5-806e-ce9d068bd081\n description: ID of the event group\n namespace:\n type: string\n example: namespace\n description: Namespace of the event group\n key:\n type: string\n example: key\n description: Key of the event group\n description:\n type: string\n example: description\n description: Description of the event group\n enabled:\n type: boolean\n example: true\n description: Enabled or not\n totalEvents:\n type: integer\n example: 20\n description: Total number of events\n events:\n deprecated: false\n type: array\n items:\n type: object\n description: List of events\n roles:\n type: array\n description: List of roles\n items:\n type: string\n description: Role\n example: ROLE_USER\n example:\n - ROLE_USER\n notificationTypes:\n type: array\n description: List of notification channels\n items:\n $ref: '#/components/schemas/NotificationSubscriptionResourceV1'\n OrganizationNotificationSubscriptionsV1:\n type: object\n description: Organization notification subscriptions\n properties:\n organization-subscriptions:\n type: array\n description: List of organization notification subscriptions\n items:\n $ref: '#/components/schemas/NotificationSubscriptionResourceV1'\n OrganizationNotificationPreferencesV1:\n type: object\n description: Organization notification preferences\n properties:\n organization-subscriptions:\n type: array\n description: List of organization notification subscriptions\n items:\n $ref: '#/components/schemas/NotificationSubscriptionResourceV1'\n PatchNotificationSubscriptionsRequestV1:\n type: array\n description: Patch notification subscriptions request\n items:\n properties:\n notification-type:\n type: string\n example: EMAIL\n description: Notification channel\n subscribed:\n type: boolean\n example: true\n description: Subscribed or not\n UserEventGroupNotificationSubscriptionsV1:\n type: array\n description: List of user notification subscriptions for event groups\n items:\n $ref: '#/components/schemas/EventGroupNotificationSubscriptionResourceV1'\n UserEventGroupNotificationSubscriptionItem:\n type: object\n description: Success. A response with user notification subscriptions.\n properties:\n object:\n $ref: '#/components/schemas/UserEventGroupNotificationSubscriptionsV1'\n _links:\n type: array\n description: An array of links that can be followed for further information about this resource.\n items:\n type: object\n description: An individual link that can be followed for further information about this resource.\n required:\n - href\n - rel\n - method\n properties:\n href:\n type: string\n format: uri\n description: The URI to follow for this reference.\n example: http://example.com\n rel:\n type: string\n format: rel\n description: The relation name.\n example: self\n method:\n type: string\n description: The HTTP method to use while following this reference.\n example: GET\n"